
数论
cjk_cjk
这个作者很懒,什么都没留下…
展开
-
[NOI2011]兔农(斐波那契数列+乘法逆+矩阵加速)
几乎是抄的,啥都不要说了贴上策爷和VFK的链接好了http://jcvb.is-programmer.com/posts/39528.htmlhttp://vfleaking.blog.163.com/blog/static/174807634201341721051604/还是写两句吧。关键是将新数列每个元素模k后写出,在经减1余0的元素后面换行,并找规律发现每行原创 2015-03-15 22:58:58 · 866 阅读 · 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 · 599 阅读 · 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 · 1143 阅读 · 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 · 572 阅读 · 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 · 1808 阅读 · 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 · 597 阅读 · 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 · 713 阅读 · 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 · 1094 阅读 · 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#includetypedef long long LL;LL phi[原创 2015-06-02 23:12:21 · 476 阅读 · 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 · 683 阅读 · 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 · 620 阅读 · 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 · 537 阅读 · 0 评论