欧拉函数
Icefox_zhx
这个作者很懒,什么都没留下…
展开
-
bzoj2818 Gcd(欧拉函数前缀和)
求gcd(i,j)==pgcd(i,j)==p就是求gcd(i/p,j/p)==1gcd(i/p,j/p)==1。我们发现这就是欧拉函数前缀和。于是我们可以用素数筛处理出phi来做。注意是有序对的个数,所以每个p的贡献应该是sum[n/p]∗2−1sum[n/p]*2-1原创 2018-03-17 15:51:17 · 396 阅读 · 0 评论 -
bzoj4916 神犇和蒟蒻(杜教筛)
第一问就是在逗你玩…只有i=1时才得1,其他时候都得0,因此前缀和永远为1。 考虑第二问。ϕ(i2)=i∗ϕ(i)\phi(i^2)=i*\phi(i) 因此f(x)=x∗ϕ(x),求s(x)=∑i=1xf(i)f(x)=x*\phi(x),求s(x)=\sum\limits_{i=1}^xf(i) 还是利用杜教筛的套路: g(1)s(n)=∑i=1n(g∗f)(i)−∑d=2ng(d)s(原创 2018-05-06 20:47:23 · 275 阅读 · 0 评论 -
bzoj4805 欧拉函数求和(杜教筛)
杜教筛就是用来快速处理积性函数前缀和的东西。 比如我们要求∑i=1nϕ(i)\sum\limits_{i=1}^n\phi(i),n<=1e9 线性是不够的!我们需要更好的计算方法。 设f(x)=ϕ(x),s(x)=∑i=1xf(i),g(x)f(x)=\phi(x),s(x)=\sum\limits_{i=1}^xf(i),g(x)为积性函数。 那么我们有∑i=1n(f∗g)(i)=∑i=原创 2018-05-06 20:35:23 · 375 阅读 · 0 评论 -
bzoj3738 [Ontak2013]Kapitał(扩展Lucas+CRT+欧拉函数)
把末尾0去掉,相当于先除了个10x10^x,x=min(num[2],num[5])x=min(num[2],num[5])。 然后就是普通的扩展Lucas+CRT了。详见:portal以后我要全开ll【再见】,心态爆炸。我大概就是个辣鸡吧qaq原创 2018-04-06 12:22:10 · 307 阅读 · 0 评论 -
poj3243 Clever Y(EXBSGS+Hash表+欧拉函数)
扩展BSGS,经典的BSGS只能求解p为质数时的离散对数。那么如果p不是质数呢?其实我们发现p是不是质数不重要,重要的是(a,p)==1.at≡bmodpa^t\equiv b\mod p 如果(a,p)!=1,我们设为k,a=Ak,p=Pk,b=Bk(显然当b不是k的倍数时无解) 那么我们有Akt≡BkmodPk{Ak}^t\equiv {Bk}\mod {Pk} 可以把k除掉,得到Aat−原创 2018-04-03 21:43:41 · 345 阅读 · 0 评论 -
poj2888 Magic Bracelet(burnside引理+矩阵快速幂+欧拉函数)
用m种颜色给n个点的一个环染色,有一些限制条件,表示颜色a和颜色b不能相邻,考虑旋转同构,求方案数。(m<=10,n<=1e9) n很大,只能O(n−√)O(\sqrt n)枚举循环节个数k,枚举素数计算欧拉函数。因为颜色的限制,我们现在的问题在于要计算:给定一些颜色不能相邻,把k个位置染色的方案数。(这里准确的说,不仅仅是给k个位置染色,还要保证头尾颜色也要合法),因此其实就是求从颜色i走K步回原创 2018-03-27 18:31:53 · 450 阅读 · 0 评论 -
poj2154 Color(polya+欧拉函数)
只有循环同构。n很大,必须用欧拉函数来优化一下计算。计算较大数的欧拉函数可以直接枚举质因子来算,应该远小于n√\sqrt n。 为什么大家都跑的那么快呀orz,是蒟蒻姿势不对么原创 2018-03-27 14:21:52 · 284 阅读 · 0 评论 -
bzoj1408 [Noi2002]Robot(欧拉函数+快速幂)
这题…因缺思厅啊qaq 就…就直接搞就好了。 因为欧拉函数是积性函数,第一问第二问互相搞一搞就好了。 第三问用总的减去第一问第二问的答案即可。 因为∑d|nϕ(d)=n\sum\limits_{d|n}\phi(d)=n,所以总的就是m-1(此题要求ϕ(1)=0\phi(1)=0)原创 2018-04-07 16:38:51 · 227 阅读 · 0 评论 -
bzoj2226 [Spoj 5971] LCMSum(欧拉函数)
∑i=1nlcm(i,n)\sum\limits_{i=1}^nlcm(i,n) =∑i=1ningcd(i,n)=\sum\limits_{i=1}^n\frac{in}{gcd(i,n)} =∑d|nf(n/d)∗d∗n/d=\sum\limits_{d|n}f(n/d)*d*n/d =∑d|nf(d)∗n=\sum\limits_{d|n}f(d)*n 其中f(n)表示1~n中与n互质原创 2018-04-07 15:01:25 · 187 阅读 · 0 评论 -
bzoj3813 奇数国(欧拉函数+树状数组)
其实就是求区间积的欧拉函数。每个数最多分解为前60个质数的乘积,单点修改。开60个树状数组来搞就好了。或者线段树+bitset什么的都好吧qaq原创 2018-04-07 14:32:17 · 301 阅读 · 0 评论 -
bzoj2005 [Noi2010]能量采集(Mobius反演,欧拉函数)
我们发现点(x,y)到原点的连线上有gcd(x,y)-1个点(不含始终点),所以我们要求的答案就是∑x=1n∑y=1m2∗(gcd(x,y)−1)+1\sum\limits_{x=1}^n\sum\limits_{y=1}^m2*(gcd(x,y)-1)+1也就是2∑x=1n∑y=1mgcd(x,y)−n∗m2\sum\limits_{x=1}^n\sum\limits_{y=1}^mgcd(x,y原创 2018-03-30 08:57:12 · 261 阅读 · 0 评论 -
bzoj5193 [Usaco2018 Feb]Cow Gymnasts(数学)
我们考虑n个台子上的牛最少的一个台子上有m只,记这个台子为i,则对于所有的j≡i(modg)j \equiv i \pmod{g},g=gcd(N,m)g = \gcd(N,m),台子j上的牛也必为m只。其余台子上的牛最多m+1只,且具有周期性,即以g为周期。具体证明请参见官方题解:传送门因此对于最少的牛数为m(m< n)的情况,我们一共有2gcd(N,m)−12^{\gcd(N,m)} - 1种方原创 2018-03-04 22:14:25 · 938 阅读 · 0 评论 -
bzoj2705 [SDOI2012]Longge的问题(欧拉函数)
求∑ni=1gcd(i,n)\sum_{i=1}^ngcd(i,n)。我们考虑n的因数x的贡献,就是x∗ϕ(n/x)x*\phi(n/x)。原创 2018-03-17 16:17:58 · 218 阅读 · 0 评论