莫比乌斯反演学习笔记
前段时间学习了莫比乌斯反演,现在补一篇学习笔记吧。
Step 1:莫比乌斯函数
首先我们来定义一下莫比乌斯函数 \(\mu\) ,它的取值如下:
显然,莫比乌斯函数是一个积性函数,所以我们可以用线性筛将他筛出来。
莫比乌斯函数具有很好的容斥性,在一部分题目中会用得到。
Step 2:狄利克雷卷积
话分一头,我们来先学习一下另一个鬼东西:狄利克雷卷积。
引用一下我的另一个blog
Step 3: 莫比乌斯反演
写了这么久终于要开始正式讲解了。
我们定义两个函数 \(f,F\)。其中:
然后我们要去推这么一个柿子:
我们先列出几项:
可以得出:
emmm,好像看不出来什么
接下来我们就要用狄利克雷卷积来证明他。
首先,很明显的是
两边同时卷上个 \(\mu\):
然后我们知道
证毕。
同样,我们也可证出莫比乌斯反演的另一种形式:
后者更加常用(虽然一般做题都不会生搬硬套上面两个形式)。
我们来举个例子使用莫比乌斯反演来做一做:
给定一个数 \(n\),求以下式子的值:
\(1 \le n \le 10^5\)。
first:
暴力枚举,时间 \(O(n^2 \log n)\)
second:
接下来就是用莫比乌斯反演推柿子的时间了。
我们改变枚举顺序,先枚举 \(gcd(i,j)\)。
我们把 \(i,j\) 的枚举范围稍加改变,只枚举 \(d\) 的倍数。
接下来就是见证奇迹的时刻:
这是为什么呢?因为 \(\mu * 1 = \varepsilon\),所以柿子值是不变的。
我们再次改变枚举顺序,先枚举 \(k\)。
经过我们的一通瞎操作这个柿子终于变得毒瘤起来了。
我们发现最后的两个 \(\sum\) 其实是不必要的,我们可以把它变成\([\frac{n}{d}]^2\)。
式子变成了这样:
这个柿子呢我们来分析一下它的复杂度,应该为:
这个东西我们把它称为调和级数,计算出来约是等于 \(O(n\ln n)\)。
其实这个柿子还可以优化,以下有两种优化方法:
1.数论分块:
引理:对于正整数 \(n\), \(S= \{ x|x=[\frac{n}{i}],i\in N^* \}\),\(|S|\) 与 \(\sqrt{n}\)同阶
这个引理本人太菜了不会证明,先放个坑以后填上,但结论是正确的。
那么上面这个 \(B\) 式我们就可以将所有 \([\frac{n}{i}]\) 相等的数统一计算可以达到 \(O(n)\) 的优秀复杂度。
2.继续将柿子优化:
我们可以设 \(T=dk\),然后柿子就变成了这样:
其中我们发现 \(\displaystyle \sum_{d|T}d\mu(\frac{T}{d})\)可以用一种类似埃式筛的方法预处理,时间复杂度为 \(O(n\ln n)\),然后 \(O(\sqrt{n})\) 的速度输出答案
第一种方法适合单次输出答案,第二种方法适合多测,一般使用第二种方法。

浙公网安备 33010602011771号