【模板】Polya 定理

纯板子题,主要是讲一下这题如何快速求 ϕ \phi ϕ

化简之后要求的是 ∑ d ∣ n n d ϕ ( n d ) \underset{d|n}{\sum}n^d\phi(\frac{n}{d}) dnndϕ(dn)

像这个求约数的 ϕ \phi ϕ可以像下面这么求:

先将 n n n质因数分解,对每个质因数 p p p,求出 ϕ ( p ) , ϕ ( p 2 ) , . . . , ϕ ( p c ) \phi(p),\phi(p^2),...,\phi(p^c) ϕ(p),ϕ(p2),...,ϕ(pc)(每个都可以 O ( 1 ) O(1) O(1)求解);然后再用dfs枚举每个质数的指数构成某一个约数,利用积性函数的性质就好了

时间复杂度为 O ( d ( n ) log ⁡ n ) O(d(n)\log n) O(d(n)logn),其中 d ( n ) d(n) d(n) n n n的约数个数, log ⁡ n \log n logn是考虑到离散化的复杂度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值