数学
qq_19275839
这个作者很懒,什么都没留下…
展开
-
LightOJ 1370 欧拉函数
先打表。 一开始我打算对于每个学生的数字直接从1开始找,后来发现这样会t。 注意到欧拉函数有一个性质,就是大的结果第一次出现一定会比小的结果第一次出现晚,所以我们可以先把学生的幸运数字从大到小排序,如果第二个学生的幸运数字在phi[5]取到,那么第三个学生的幸运数字绝对不会在第五个之前,按照这个方式把复杂度优化到nlogn。 #include <iostream> #include &...原创 2019-08-13 14:25:47 · 83 阅读 · 0 评论 -
LightOJ 1341 唯一分解定理
思路就是把a分解质因数,对于一个质因数a1p1,会是a的因数多(p1+1)倍(不选或者选几个,乘法法则),对于每个因数,都会有另一个因数与他乘在一起结果是a,所以我们求出因数的个数之后除以2即可得出组合的数量,然后对于给的范围,0~b中每有一个因数,组合的数量便会减一。 如果我们需要对N分解质因数,只要把质数表打到N1/2即可,因为不可能有两个质因数都大于N1/2。 #include <io...原创 2019-08-13 19:51:16 · 129 阅读 · 0 评论 -
CodeForces 1114C 数论
求一个数a的阶乘中有多少个因数b就用a/b + a/b2 + a/b3 …直到除不动了为止。 对于这道题收到的n和b,首先把b分解质因数,把因数和个数存在数组里,然后对于每个因数都去算a的阶乘里有多少个那个因数,然后除以它在b中的次数,求它可以够组成多少个b,对于每个因数都这么算,然后取最小值。 #include <iostream> #include <math.h> #...原创 2019-08-07 20:26:08 · 142 阅读 · 0 评论 -
HihoCoder 1839 数学
这题本质上是个暴力。 首先把输入数字的所有位数加在一起,我们把它称为total,要求的就是total*(1111…111)(n位)的最小质因数。如果直接暴力求值的话单是对于一个质数求total*(1111…111)%Mod就要n的复杂度,非常不划算,所以我们需要把问题转化一下。 通过观察,可以得到这个结论 如果total*(1111...111)(n个1)%Mod == 0; 那么(total *...原创 2019-08-06 14:13:36 · 95 阅读 · 0 评论