博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
莫比乌斯反演
阅读量:5072 次
发布时间:2019-06-12

本文共 1571 字,大约阅读时间需要 5 分钟。

莫比乌斯反演

莫比乌斯函数\(\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}\]

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

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

转载于:https://www.cnblogs.com/Star-dust/p/8075958.html

你可能感兴趣的文章