数论
cjk_cjk
这个作者很懒,什么都没留下…
展开
-
[NOI2011]兔农(斐波那契数列+乘法逆+矩阵加速)
几乎是抄的,啥都不要说了 贴上策爷和VFK的链接好了 http://jcvb.is-programmer.com/posts/39528.html http://vfleaking.blog.163.com/blog/static/174807634201341721051604/ 还是写两句吧。关键是将新数列每个元素模k后写出,在经减1余0的元素后面换行,并找规律 发现每行原创 2015-03-15 22:58:58 · 843 阅读 · 0 评论 -
BZOJ1257 [CQOI2007]余数之和sum(枚举商)
题目大意: 给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n 的值,1 【题解】 n>k的部分,总答案为 k*(n-k+1) n 而i取某些连续值时,[k/i]可以求出这段连续区间,sigma([k/i]*i) = [k/i]*sigma(i) 即:常数 * 等差数列之和 这样,[k/i]的一个商只被算了原创 2015-06-06 00:18:45 · 583 阅读 · 0 评论 -
BZOJ3643 Phi的反函数(数论+搜索)
题意: 输入n 设 x = p1^a1 * p2^a2 * …* pm^am (m 则 n == phi(x) == x * (p1-1)*p1 * (p2-1)*p2 * …* (pm-1)*pm == p1^(a1-1) * (p1-1) * p2^(a2-1) * (p2-1) * …* pm^(am-1) * (pm-1) 可以发现:(p1-1)*(p2-1)* …原创 2015-05-20 02:02:23 · 1117 阅读 · 0 评论 -
[NOI2010]能量采集(数论+递推)
【题解】 (0,0)到(x,y)的线段经过的点数(不算端点) = gcd(x,y) 枚举所有点对肯定会超时,但是若枚举最大公约数i,范围是1~min(n,m),只需快速求出有多少点对最大公约数是i即可 递推的思想: 设f[i]:满足gcd(x,y)==i的点对(x,y)个数 显然,f[i]=公约数为i的点对数 -f[i*2] - f[i*3] - …- f[i*n],(i*n 而原创 2015-03-31 23:46:04 · 549 阅读 · 0 评论 -
BZOJ3233 [Ahoi2013]找硬币(线性筛+dp)
【题解】 本蒻一直在想二维dp,看了题解才发现竟然一维就可以 设f[i]为最大面值为i时,买下所有兔纸花费的最小硬币数 f[i] = min{ f[j] - sigma(a[k]/i*(i/j-1)) } , j|i,其中,j为次大面值,这个方程考虑的是选了i能减小多少j的使用 注意,如果硬币种类很多,是不影响最优答案的(不用就行了) -----------> 重要的性质 所原创 2015-06-26 03:04:29 · 1769 阅读 · 1 评论 -
BZOJ2301 [HAOI2011]Problem b(莫比乌斯反演)
【题解】 莫比乌斯反演: 用容斥的思想: Ans( a 那么对于转化后的每个询问:1 设f(k)为答案,F(k)表示 1 F(k)=sigma( f(d) ) , k|d,又 F(k)=[n/k]*[m/k] => f(k)=sigma( mu(d/k)*F(d) ) , k|d =sigma( mu(d/k)*[n/d]*[m/d] ) , k|d原创 2015-06-04 21:50:12 · 573 阅读 · 0 评论 -
BZOJ2440 [中山市选2011]完全平方数(莫比乌斯函数+容斥原理+二分答案)
【题解】 本题中完全平方数不考虑1 在1~k*2中二分答案: 对于x,只需求出1~x中有多少个数不是完全平方数的倍数 由容斥原理: 1~x中 不是完全平方数的倍数 的数的个数 = x - 是至少1个质数n次方的数的个数 + 是至少2个质数n次方的数的个数 - 是至少3个质数n次方的数的个数 … 其中的系数1的正负刚好与 因式中多次出现的质数种类数的奇偶性一致,因此系数可以用类似莫比乌原创 2015-06-03 22:58:11 · 682 阅读 · 0 评论 -
BZOJ2705 [SDOI2012]Longge的问题(欧拉函数)
题目大意:给定一个整数N,你需要求出∑gcd(i, N)(1 【题解】 按gcd的不同,题目可以转化为:sigma(g*与n的最大公约数为g的数的个数) 先考虑与n的gcd=1的i,它的数量为 φ(n) 假设 gcd(i, N)=g,i=g*a,n=g*b,那么i与n同除以g后互质,也就是说:与n的最大公约数为g的数的个数为 φ(n/g) 可以在sqrt(n)范围内枚举n的因子,原创 2015-06-02 09:48:32 · 1057 阅读 · 0 评论 -
BZOJ2818 Gcd(欧拉函数)
给定整数N,求1 【题解】 O(n)地枚举gcd 题目转化为:对于每个gcd 当x 可以预处理出phi[]及其前缀和S[] 那么对于每个gcd的全部(x,y),共有2*S[N/gcd]-1对互质,其中(1,1)被计算了两次,所以减去1 因此总复杂度为 O(n) 【代码】 #include #include typedef long long LL; LL phi[原创 2015-06-02 23:12:21 · 457 阅读 · 0 评论 -
poj2478 Farey Sequence(线性筛法+欧拉函数+递推)
题意:每次询问 phi[1]+phi[2]+…+phi[n],n 注意: 1. 欧拉函数的性质: 若p是质数,if( n%p==0 && (n/p)%p==0 ) phi(n)=phi(n/p)*p if( n%p==0 && (n/p)%p!=0 ) phi(n)=phi(n/p)*(p-1) 2. 线性筛法可以求出一个数的最小质因子原创 2015-06-02 10:04:43 · 663 阅读 · 0 评论 -
BZOJ1025 [SCOI2009]游戏(置换+数论+背包)
题意真纠结 题目大意: 规定一种1~N的对应关系(1~N的一种排列),按这种关系将顺序序列1~N反复变换,变回1~N所经过的变换次数+1 记为这种对应关系的排数,求排数有多少个 【题解】 置换群的问题。对于每种对应关系,将其分解为循环节的形式,则变换次数为:各循环节长度的最小公倍数 如 对应关系:1->2 2->3 3->1 4->5 5->4 6->6,转化后就是(原创 2015-01-29 00:12:55 · 594 阅读 · 0 评论 -
BZOJ3884 上帝与集合的正确用法(欧拉函数)
【题解】 函数y = 2^x mod p 当p是奇数时,由于 2^φ(p) mod p = 1 ,所以函数会出现循环节长度为φ(p)的循环 当p是偶数时,设 p = 2^k * q,q为奇数,函数会出现循环节长度为φ(q)的循环 所以有: ( 2^2^2…^2 ) mod p = [ 2^(2^2…^2-k) *2^k ] mod (2^k*q) ,q为奇数原创 2015-06-02 10:00:38 · 510 阅读 · 0 评论