\[\]
前段时间学习了莫比乌斯反演,现在补一篇学习笔记吧。
Step 1:莫比乌斯函数
首先我们来定义一下莫比乌斯函数 \(\mu\) ,它的取值如下:
\[\mu(n)=\left\{ \begin{array}{ll} 1 \qquad \quad n=1\\ (-1)^k \quad n=p_1p_2\cdots p_k\\ 0 \qquad \quad otherwise \end{array} \right. \]显然,莫比乌斯函数是一个积性函数,所以我们可以用线性筛将他筛出来。
莫比乌斯函数具有很好的容斥性,在一部分题目中会用得到。
Step 2:狄利克雷卷积
话分一头,我们来先学习一下另一个鬼东西:狄利克雷卷积。
引用一下我的另一个blog
Step 3: 莫比乌斯反演
写了这么久终于要开始正式讲解了。
我们定义两个函数 \(f,F\)。其中:
\[F(n)=\sum_{d|n}f(d) \]然后我们要去推这么一个柿子:
\[f(n)=\sum_{d|n}F(d)\mu(\frac{n}{d}) \]我们先列出几项:
\[F(1)=f(1) \]\[F(2)=f(1)+f(2) \]\[F(3)=f(1)+f(3) \]\[F(4)=f(1)+f(2)+f(4) \]可以得出:
\[f(1)=F(1) \]\[f(2)=F(2)-F(1) \]\[f(3)=F(3)-F(1) \]\[f(4)=F(4)-F(2) \]emmm,好像看不出来什么
接下来我们就要用狄利克雷卷积来证明他。
首先,很明显的是
\[F=f * I \]两边同时卷上个 \(\mu\):
\[F * \mu=f * I * \mu \]然后我们知道
\[I * \mu=\varepsilon \]\[\therefore F * \mu=f * \varepsilon \]\[F * \mu =f \]证毕。
同样,我们也可证出莫比乌斯反演的另一种形式:
\[F(n)=\sum_{n|d}f(d) \]\[f(n)=\sum_{n|d}\mu(\frac{d}{n})F(d) \]后者更加常用(虽然一般做题都不会生搬硬套上面两个形式)。
我们来举个例子使用莫比乌斯反演来做一做:
给定一个数 \(n\),求以下式子的值:
\(1 \le n \le 10^5\)。
first:
暴力枚举,时间 \(O(n^2 \log n)\)
second:
接下来就是用莫比乌斯反演推柿子的时间了。
\[\sum_{i=1}^n\sum_{j=1}^ngcd(i,j) \]我们改变枚举顺序,先枚举 \(gcd(i,j)\)。
\[=\sum_{d=1}^nd\sum_{i=1}^n\sum_{j=1}^n[gcd(i,j)==d] \]我们把 \(i,j\) 的枚举范围稍加改变,只枚举 \(d\) 的倍数。
\[=\sum_{d=1}^nd\sum_{i=1}^{[\frac{n}{d}]}\sum_{j=1}^{[\frac{n}{d}]}[gcd(i,j)==1] \]接下来就是见证奇迹的时刻:
\[=\sum_{d=1}^nd\sum_{i=1}^{[\frac{n}{d}]}\sum_{j=1}^{[\frac{n}{d}]}\sum_{k|gcd(i,j)}\mu(k) \]这是为什么呢?因为 \(\mu * 1 = \varepsilon\),所以柿子值是不变的。
我们再次改变枚举顺序,先枚举 \(k\)。
\[=\sum_{d=1}^nd\sum_{k=1}^{[\frac{n}{d}]}\mu(k)\sum_{i=1}^{[\frac{n}{d}]}\sum_{j=1}^{[\frac{n}{d}]}1 \]经过我们的一通瞎操作这个柿子终于变得毒瘤起来了。
我们发现最后的两个 \(\sum\) 其实是不必要的,我们可以把它变成\([\frac{n}{d}]^2\)。
式子变成了这样:
这个柿子呢我们来分析一下它的复杂度,应该为:
\[\sum_{i=1}^n[\frac{n}{i}] \]这个东西我们把它称为调和级数,计算出来约是等于 \(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\),然后柿子就变成了这样:
\[\sum_{T=1}^n\sum_{d|T} d\mu(\frac{T}{d})[\frac{n}{d}]^2 \]其中我们发现 \(\displaystyle \sum_{d|T}d\mu(\frac{T}{d})\)可以用一种类似埃式筛的方法预处理,时间复杂度为 \(O(n\ln n)\),然后 \(O(\sqrt{n})\) 的速度输出答案
第一种方法适合单次输出答案,第二种方法适合多测,一般使用第二种方法。
标签:frac,乌斯,sum,mu,反演,莫比 From: https://www.cnblogs.com/LUlululu1616/p/18256407