随笔分类 -  欧拉函数

摘要:对于置换0→i,1→i+1……,其中包含0的循环的元素个数显然是n/gcd(i,n),由对称性,循环节个数即为gcd(i,n)。 那么要求的即为Σngcd(i,n)/n(i=0~n-1,也即1~n)。考虑枚举gcd。显然gcd(i,n)=x在该范围内解的个数是φ(n/x)。分解一下质因数即可。 阅读全文
posted @ 2018-12-23 15:18 Gloid 阅读(162) 评论(0) 推荐(0) 编辑
摘要:第一问是来搞笑的。由欧拉函数的计算公式容易发现φ(i2)=iφ(i)。那么可以发现φ(n2)*id(n)(此处为卷积)=Σd*φ(d)*(n/d)=nΣφ(d)=n2 。这样就有了杜教筛所要求的容易算前缀和的两个函数。一通套路即可。 阅读全文
posted @ 2018-12-01 18:35 Gloid 阅读(185) 评论(0) 推荐(0) 编辑
摘要:一通套路后得Σφ(d)μ(D/d)⌊n/D⌋2。显然整除分块,问题在于怎么快速计算φ和μ的狄利克雷卷积。积性函数的卷积还是积性函数,那么线性筛即可。因为μ(pc)=0 (c>=2),所以f(pc)还是比较好算的,讨论一波即可。 阅读全文
posted @ 2018-11-16 21:50 Gloid 阅读(196) 评论(0) 推荐(0) 编辑
摘要:由扩展欧拉定理,a^(a^(a^(……^x)))%p中x作为指数的模数应该是φ(φ(φ(φ(……p)))),而p取log次φ就会变为1,也即每个位置一旦被修改一定次数后就会变为定值。线段树维护区间剩余修改次数的最大值,暴力修改即可。 可以预处理出每个位置进行k次操作后的值。直接计算是log^3的,会 阅读全文
posted @ 2018-10-18 22:33 Gloid 阅读(202) 评论(0) 推荐(0) 编辑
摘要:设f(n)为模n时的答案,由2k mod n=2k mod φ(n)+φ(n) mod n(并不会证),且k mod φ(n)=f(φ(n)),直接就可以得到一个递推式子。记搜一发即可。 阅读全文
posted @ 2018-10-04 23:45 Gloid 阅读(198) 评论(0) 推荐(0) 编辑
摘要:对每个质因子分开计算再乘起来。使用类似生成函数的做法就很容易统计了。 阅读全文
posted @ 2018-09-25 18:50 Gloid 阅读(147) 评论(0) 推荐(0) 编辑
摘要:注意到n很小,考虑枚举i。现在要求的是f(n,m)=Σφ(in) (i=1~m)。显然当n没有平方因子时,φ(in)=φ(i)·φ(n/gcd(i,n))·gcd(i,n)。利用φ*1=id又可得φ(i,n)=φ(i)·Σφ(n/d) (d|gcd(i,n))。改为枚举d就可以得到f(n,m)=Σφ 阅读全文
posted @ 2018-09-24 10:41 Gloid 阅读(157) 评论(0) 推荐(0) 编辑
摘要:考虑对于每一个x有多少个合法解。得到ax+by=c形式的方程。如果gcd(x,y)|c,则a在0~y-1范围内的解的个数为gcd(x,y)。也就是说现在所要求的是Σ[gcd(x,P)|Q]*gcd(x,P)。 对这个式子套路地枚举gcd,可以得到Σdφ(P/d) (d|gcd(P,Q))。质因子间相 阅读全文
posted @ 2018-09-21 22:21 Gloid 阅读(253) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示