
数论
文章平均质量分 76
我不会额
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SPOJ - GCDEX GCD Extreme
题目:给你一个N,求sigma(gcd(i,j)),1 思路:枚举gcd,利用欧拉函数计算 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #include #include #include #原创 2017-08-21 15:34:15 · 414 阅读 · 0 评论 -
HDU - 4059 The Boss on Mars 容斥
题目:求1-n中与n互质的数的4次方之和 思路:容斥定理。 要用到公式:(1^4+2^4+……+n^4)=(n*(n+1)*(2n+1)*(3*n*n+3*n-1))/30 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #inc原创 2017-09-06 19:37:38 · 361 阅读 · 0 评论 -
POJ - 3696 The Luckiest number 欧拉函数
题目:给你一个数L,找出它的一个倍数x,使得x*L的每一位都是8,输出最小x*L的位数,不存在则输出0 思路:8*(10^k-1)/9=x*L 令r=gcd(8,L),化简 8/r*(10^k-1)=x*(9*L)/r, 因为gcd(8/r,9*L/r)=1, 所以10^k-1=0%(9*L/r) 10^k=1%(9*L/r) 由欧拉函数可以得知有解的条件为gcd(10,9*L/r)原创 2017-08-28 14:40:34 · 340 阅读 · 0 评论 -
POJ - 1095 Trees Made to Order 卡特兰数+递归
题目: 求第n棵二叉树 思路:用卡特兰数确定一共有几个节点,然后递归输出 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #include #include #include #incl原创 2017-09-06 13:17:22 · 394 阅读 · 0 评论 -
HDU - 3988 Harry Potter and the Hide Story
题目: 1. 1 2. 1 3. 1 思路: 对k进行质因子分解,对于每一个质因子pi,k中出现的次数为cnt,计算出n!中包括该质因子的个数sum,那么对于pi的最大值就应该是sum/cnt。 当k=1时,答案是inf 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #原创 2017-09-05 21:46:12 · 419 阅读 · 0 评论 -
POJ - 2689 Prime Distance 素数筛
题目:求区间[L,R]中最近的2个相邻素数和最远的2个相邻素数 1 R-L 思路:直接用素数筛 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #include #include #inc原创 2017-09-05 19:58:50 · 388 阅读 · 0 评论 -
POJ - 3604 Professor Ben
题目:给出一个N,有若干的因子,求出因子的因子个数立方和 思路:令N=p1^a1*p2^a2*...*pn^an 那么答案为(1^3+2^3+...+a1^3)*(1^3+2^3+...+a2^3)*.... 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #inc原创 2017-09-05 18:42:25 · 328 阅读 · 0 评论 -
HDU - 3501 Calculation 2 欧拉函数
题目:求出小于N的与N不互质的数的和。 思路:小于N的与N互质的数的和为eular(n)*n/2 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #include #include #includ原创 2017-09-05 15:48:15 · 284 阅读 · 0 评论 -
POJ - 2480 Longge's problem 欧拉函数
题目:给出N,求 ∑gcd(i, N) 1 0 思路: phi(p^k)=(p-1)*p^(k-1) 考虑如果N=P^k的时候,那么F[N]=k*p^(k-1)*(p-1)+p^k。 利用eular的积性性质 F[N]=F[p1^k1*p2^k2……pi^ki]=∑(ki*pi^(ki-1)+p^ki). 代码: #pragma co原创 2017-09-05 15:26:32 · 292 阅读 · 0 评论 -
HDU - 4335 What is N? 欧拉函数
题目:给定b,p,m,问 0 ( 0 思路:要用到降幂公式, a^n % p = a^(n % phi(p) + phi(p)) %p 其中n>= phi(p) phi(p)为欧拉函数 本题分成三部分 第一部分 n! 第二部分 n! >= phi(p) 但是 n! % phi(p) != 0 ,暴力计算,不会出现非常大的数 第三部分n! >原创 2017-09-04 20:13:55 · 415 阅读 · 0 评论 -
HDU - 1573 X问题 一元线性同余方程组
题目: 求在小于等于N的正整数中有多少个X满足:X mod a[0] = b[0], X mod a[1] = b[1], X mod a[2] = b[2], …, X mod a[i] = b[i], … (0 Input输入数据的第一行为一个正整数T,表示有T组测试数据。每组测试数据的第一行为两个正整数N,M (0 Output对应每一组输入,在独立一行中输原创 2017-09-04 13:57:43 · 393 阅读 · 1 评论 -
POJ - 3358 Period of an Infinite Binary Expansion 欧拉函数
题目:将一个分数化成小数,转化成二进制后寻找循环节的开始位置和循环节的长度 思路: 对于分数p/q,首先化简,变为p=p/gcd(p,q) q=q/gcd(p,q) 我们知道转化成二进制,其实就是不断乘2,如果大于1,则去掉1,当前位为1,否则为0. 表示成分数的时候便是p/q,2*p/q,如果分子大于分母,则减掉,也相当于取余。 于是我们假设在第x位的时候开始循环,第y位出现重复。原创 2017-09-03 21:32:45 · 305 阅读 · 0 评论 -
CodeForces - 338D GCD Table 同余方程组
题目:给你一张N*M的表,表中(i,j)的值为gcd(i,j),再给你一个长度为K的数组a[i],问这个数组是否与表中某一行的一段完全重合 思路:最小可能出现的行一定是LCM(a[0],a[1],...,a[K]),然后假设为第x列为开始位置 x=0%a[0] x+1=0%a[1] ... x+K-1=0%a[K-1] 发现没,这就是同余方程组,然后求出最小的非负整数解,然后把这个解代原创 2017-08-21 23:10:38 · 383 阅读 · 0 评论 -
SPOJ - LCMSUM LCM Sum
题目:给你一个N,求LCM(i,n),1 思路: 对于 n >= 2,与n互质的数的和为(n *phi (n) / 2) 然后枚举gcd,利用欧拉函数进行计算 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #原创 2017-08-21 16:19:24 · 362 阅读 · 0 评论 -
HDU - 4196 Remoteland
题目:用不大于n内的所有数去组成一个最大的完全平方数 思路:用n!去除以出现次数为奇数的素数 a=c/b=(c%MOD)*(b%MOD)^(MOD-2) 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #incl原创 2017-09-06 21:43:15 · 328 阅读 · 0 评论