莫比乌斯反演

莫比乌斯反演

莫比乌斯函数\(\mu\)的定义:

\[\begin{eqnarray}\mu(i)&=&0(i含有平方因子)\\&=&(-1)^{i的因子个数}(i不含有平方因子数)\end{eqnarray} \]

\(\mu\)的性质:

积性函数(不完全)

重要公式:\(\sum_{d|n}\mu(d)=(n==1)\)

证明:

n等于1时结论显然

否则将\(\mu(d)\)当做容斥系数来证明

例题1:

\(\sum_{i=1}^n\sum_{j=1}^m(gcd(i,j)==1)\)

\(n,m\le10^7\)

题解:

考虑原式:\(\sum_{i=1}^n\sum_{j=1}^m(gcd(i,j)==1)\)

原式等于:\(\sum_{i=1}^n\sum_{j=1}^{m}\sum_{d|gcd(i,j)}\mu(d)\)

这样在\(gcd(i,j)!=1\)时对答案无贡献,而在它等于1是对答案贡献唯一,符合原式

枚举\(d\)

如果\(d\)\(gcd(i,j)\)的因数,那么

\(d|i\)&&\(d|j\)

对于每个d来说

在1到n的范围中有\(\lfloor \frac{n}{d}\rfloor\)

在1到m的范围中有\(\lfloor \frac{m}{d}\rfloor\)

相应的\(d\)作为\(gcd(i,j)\)的因数就该有\(\lfloor \frac{n}{d}\rfloor\lfloor \frac{m}{d}\rfloor\)多次

也意味着\(\mu(d)\)出现了那么多次

那么我们枚举$d $

既:\(\sum_{d=1}^{n}\lfloor \frac{n}{d}\rfloor\lfloor \frac{m}{d}\rfloor\mu(d)\)

这里d从1到n还是从1到m都无所谓

因为有若\(d\)大于\(n,m\)其中一个那么向下取整就会变为0,既对答案无贡献

我们发现\(\lfloor \frac{n}{d}\rfloor\)\(\lfloor \frac{m}{d}\rfloor\)都最多只有\(\sqrt{n}\)\(\sqrt{m}\)种取值,那么枚举这些取值,先预处理\(\mu\)的前缀和,就能在根号级别的时间里解决原题了。

例题2:

\(\sum_{i=1}^n\sum_{j=1}^m(gcd(i,j)==prime)\)

\(n,m\le10^7\)

题解:

\[\begin{eqnarray}原式&=&\sum_{i=1}^n\sum_{j=1}^m(gcd(i,j)==prime)\\枚举gcd&=&\sum_{x\in prime}\sum_{i=1}^{\lfloor \frac{n}{x}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{x}\rfloor}(gcd(i,j)==1)\\借用上一题公式:&=&\sum_{x\in prime}\sum_{d=1}^{n}\lfloor \frac{n}{dx}\rfloor\lfloor \frac{m}{dx}\rfloor\mu(d)\\枚举dx &=&\sum_{k=1}^{n}\lfloor \frac{n}{k}\rfloor\lfloor \frac{m}{k}\rfloor\sum_{x\in prime\&x|k}\mu(\frac{k}{x})\end{eqnarray} \]

在线性筛时恰好可以处理右边的前缀和,那么就同上一题一样直接上就好了。

至于其他的题目,对于每次式子不断换着东西来枚举,枚举到符合复杂度的形式即可√

posted @ 2017-12-20 21:48  玄方  阅读(252)  评论(1编辑  收藏  举报