
数论
文章平均质量分 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 · 397 阅读 · 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 · 347 阅读 · 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 · 314 阅读 · 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 · 384 阅读 · 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 · 404 阅读 · 0 评论 -
POJ - 2689 Prime Distance 素数筛
题目:求区间[L,R]中最近的2个相邻素数和最远的2个相邻素数1R-L思路:直接用素数筛代码:#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include#inc原创 2017-09-05 19:58:50 · 373 阅读 · 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 · 316 阅读 · 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 · 270 阅读 · 0 评论 -
POJ - 2480 Longge's problem 欧拉函数
题目:给出N,求 ∑gcd(i, N) 10思路: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 · 281 阅读 · 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 · 399 阅读 · 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 · 376 阅读 · 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 · 289 阅读 · 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 · 359 阅读 · 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 · 346 阅读 · 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 · 316 阅读 · 0 评论