关于莫比乌斯反演,这篇说得非常清楚了。
记录以下做过的莫比乌斯反演例题。
===i=1∑Nj=1∑Mp∈P,p∣i,p∣j∑[gcd(pi,pj)=1]p∈P∑i=1∑⌊pN⌋j=1∑⌊pM⌋ε(gcd(i,j))p∈P∑i=1∑⌊pN⌋j=1∑⌊pM⌋d∣gcd(i,j)∑μ(d)p∈P∑d=1∑i=1∑⌊pdN⌋j=1∑⌊pdM⌋μ(d)
令 t=pd
t∑⌊tN⌋⌊tM⌋p∣t,p∈P∑μ(pt)
只需要预处理
$ f(t)=∑p∣t,p∈Pμ(pt) $
一般的做法是直接枚举 p ,然后暴力更新。例如:
然而是有 O(n) 预处理方法的。
$ f(t)=0 当且仅当 t 有不超过一个平方因子。当 t 有平方因子 p02 $时,
只有上式中的 p 取 p0
时有贡献,否则任意 p 贡献相同,都为 −μ(t) 。
预处理时分类即可,注意每个合数指挥被其最小质因子筛出。