莫比乌斯反演学习笔记
狄利克雷卷积
对于两个数论函数 $f(x)$ 和 $g(x)$,他们的卷积结果 $h(x)$ 定义为
$h(x)=\sum_{d|x}^{}f(d)g(\frac{x}{d} )=\sum_{ab=x}^{}f(a)g(b) $
即 $h=f*g$
满足交换律,结合律,分配律。
莫比乌斯函数
$$\mu (n)=\left\{\begin{matrix}1 &n=1 \\0 & n含有平方因子\\(-1)^{k} & k为n的本质不同因子个数\end{matrix}\right.$$
首先,他是一个积性函数,也就是说,它可以通过线性筛法预处理出来

void pre(){ mu[1]=1; for(int i=2;i<N;i++){ if(!vis[i]) mu[i]=-1,p[++tot]=i;//p既是第i个素数,也是i的最小质因子 for(int j=1;j<=tot&&i<N/p[j];j++){ vis[i*p[j]]=1; if(i%p[j]==0) { mu[i*p[j]]=0;break;} else mu[i*p[j]]=-mu[i]; } } }
其单位元是 $\epsilon =[n=1]$。
单位元是指,$\mu *\epsilon =\mu $
性质:
$\sum_{d|n}^{}\mu (d)=[n=1]$
即 $\sum_{d|n}^{}\mu (d)=\epsilon (n)$,$\mu *1=\epsilon $
因此,当我们遇到互质问题时
$[gcd(i,j)=1]=\sum_{d|gcd(i,j)}^{}\mu (d) $ (非常重要)
莫比乌斯反演例题
例一
求
$\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)=1] (n<m)$
通过上文提到的非常重要的性质,我们可以把它变成如下形式
$\sum_{i=1}^{n}\sum_{j=1}^{m}\sum_{d|gcd(i,j)}^{}\mu (d) $
然后就是经典的套路——调整枚举顺序
具体来说,我们把d提到前面去,则i和j均为d的倍数
$\sum_{d=1}^{\min(n,m)}\mu (d)*\left \lfloor \frac{n}{d} \right \rfloor *\left \lfloor \frac{m}{d} \right \rfloor$
预处理出 $\mu$ 地前缀和,然后用数论分块做。
例二
求
$\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)=k] (n<m)$
其实和上一题一样,只不过要稍稍转化一下,套路地同时除以k即可
$\sum_{i=1}^{\left \lfloor \frac{n}{k} \right \rfloor } \sum_{j=1}^{\left \lfloor \frac{m}{k} \right \rfloor }[gcd(i,j)=1] $
然后就和上一题一样