另一种更为优秀的快速筛莫比乌斯函数的筛法

关于 \(\mu\) 函数的另一种较快速的筛法

\(Q:\ \sum_{i=1}^n\ \mu(i)\)

注:接下来的两步,是最精彩的,也是最令人窒息的两步操作

首先,必然有一份贡献为 \(\mu(1) = 1\) 那么,我们先将他给单独拿出来,又因为 \(\mu\) 函数取值只为 \(0,1,-1\) ,所以我们可以再进行一点耐人寻味的操作

原式可变成 :

\(1-\sum_{i=2}^n\ (0-\mu(i))\)

然而对于这个 \(0\) ,我们还可以再变成一个妙妙的样子

\(1-\sum_{i=2}^n(\sum_{j\mid i}\mu(j) - \mu(i))\)

紧接着,我们换一个角度来陈述这个式子,我们来枚举每个 \(\mu(i)\) 出现的次数来统计它们的贡献

变化如下:

\(1-\sum_{j=2}^n\mu(j)(\lfloor\frac{n}{j}\rfloor-1)\)

显然,当 \(j > \frac{2}{n}\) 时,它的贡献为 \(0\)

所以原式最终化简为:

\(1-\sum_{j=2}^{\lfloor\frac{n}{2}\rfloor}\mu(j)(\lfloor\frac{n}{j}\rfloor-1)\)

显然为了配合下底分块的方法来处理,我们需要线筛 \(\sum_{j=2}^{\lfloor\frac{n}{2}\rfloor}\mu(j)\) ,然后用前缀和的操作来解决问题

从而我们递归处理这一部分

当然,我们也可以先预处理出较小范围的 \(\mu\) 的值

二者结合则可以较为优雅的解决这一系列的问题了

posted @ 2018-02-03 20:09  沛霖  阅读(363)  评论(0编辑  收藏  举报