概述
【1】题目
题意:给你n个人的幸运值,要你要给每个人一些分数的竹子,要求是这些竹子的分数大于该人的幸运值(竹子的分数定义为该竹子长度的欧拉函数值),问最少可以卖多少就可以满足要求。
知识点:欧拉函数的性质:素数(假设是p)的欧拉函数值 == p-1 ,所以素数打表出来,然后从该人的幸运值(假设为m)加一开始判断是否是素数,因为一但是素数,欧拉函数值就是素数减一。
做题总结:一开始读错了题目,以为是大于等于,就用欧拉筛法做,结果不对,改成大于后结果对了。但是交上去一直Runtime error(运行时错误),经过检查不是数组大小问题,这就令人很苦恼了。。可能是哪里的指针出了问题,很难改。然后其实并没有用欧拉函数性质去做,而是直接比较的,要使超时了还能引导着我去往优化上去想,但是越界了。。。
【2】题目
题意:给定两个数a,b,a是一个区域最大边界(满足条件的乘积),b是最小可能的数,问你能找到几对pair,它们的乘积等于a。
做题总结:我的思路一开始是试除法枚举因子,O(),大约是10的6次方乘以4的10的四次方(样例数),很明显的TLE了。所以换个思路,利用唯一分解定理,算出a的因子数目,a的因子较少,然后就不T了。还可以有一个小剪枝(也称不上剪枝),就是如果sqrt(a)< b的话,就一定是0。然后疯狂wa。。。而且我那个板子到1e6还超时。。。其实还有一个关键点是:b是最小的,所以我们在1---b-1范围内寻找a的因子,如果有,前面求出总因子个数就要减去这个不合理的因子个数,至此,本题结束。
知识点:唯一分解定理,也叫算数基本定理,就是一个数总是能分解为素数幂之积。
模板:https://blog.csdn.net/weixin_43238423/article/details/102865412
最后
以上就是健康火车为你收集整理的【数论之路】刷题总结的全部内容,希望文章能够帮你解决【数论之路】刷题总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复