莫比乌斯函数 学习笔记
定义
\[\mu(n) =
\begin{cases}
1 & n = 1 \\
0 & p^2|n \\
(-1)^k & n=\prod_{i=1}^k p_k \\
\end{cases}
\]
其中 \(p,p_i\) 代表质数。
性质
-
它为积性函数。
-
\[\sum_{d|n} \mu(d) = [n=1] \\
\]
即 \(\sum_{d|n} \mu(d) = \varepsilon(n),\mu * 1 = \varepsilon\),可用二项式定理证明。
由此推得反演结论:
\[[\gcd(i,j)=1] = \sum_{d|gcd(i,j)} \mu(d) \\
\]
线性筛
作为积性函数,它肯定可以欧拉筛啦。
Möbius 变换
设 \(f(n),g(n)\) 为两个数论函数。
- 若 \(f(n) = \sum_{d|n} g(d)\),则有 \(g(n) = \sum_{d|n}\mu(d)f(\frac{n}{d})\)。
- 若 \(f(n)=\sum_{n|d} g(d)\),则有 \(g(n) = \sum_{n|d}\mu(\frac{n}{d})f(d)\)。
可以用数论变换或者卷积来证明。
拓展
在卷积中,有:(\(\operatorname{id}\) 表示恒等函数)
\[\varphi \ast 1 = \operatorname{id} \\
\]
例题
Möbius 反演
法 1:容斥
将 \((x,y,z)\) 按 \(\max(x,y,z)\) 分组,也就是把正方体拆成多层。
那么 \((x,y,z)\) 会遮挡 \((kx,ky,kz)(k>1)\),那么用调和级数 DP 就可以求出每层没有被遮挡的点数:
每层最初是 \((x+1)^3-x^3\) 个点,即 \(3x^2+3x+1\),后来会被前面的调和级数逐渐减掉。
时间复杂度 \(O(n\log_2{n}+T)\)。
这个做法可以简单地扩展到高维。
法 2:用 Möbius
好的我们开始推式子:
\[\sum_{i=1}^n\sum_{j=1}^n\sum_{k=1}^n [\gcd(i,j,k)=1]
+ 3\sum_{i=1}^n\sum_{j=1}^n [\gcd(i,j)=1] + 3 \\
\]
-
那么我们把三次的单独拆出来看:
\[\begin{aligned}
& \sum_{i=1}^n\sum_{j=1}^n\sum_{k=1}^n [\gcd(i,j,k)=1] \\
& = \sum_{i=1}^n\sum_{j=1}^n\sum_{k=1}^n\sum_{d|\gcd(i,j,k)} \mu(d) \\
& = \sum_{d=1}^n \mu(d) \sum_{i=1}^n[d|i]\sum_{j=1}^n[d|j]\sum_{k=1}^n[d|k] \\
& = \sum_{d=1}^n \mu(d) {\lfloor \frac{n}{d} \rfloor}^3
\end{aligned}
\]
-
两次的也是同理:
\[\begin{aligned}
& \sum_{i=1}^n\sum_{j=1}^n [\gcd(i,j)=1] \\
& = \sum_{d=1}^n \mu(d) {\lfloor \frac{n}{d} \rfloor}^2
\end{aligned}
\]
欧拉筛 Möbius 函数然后数论分块解决即可,这个算法也可以扩展到高维。
题意
求 \(\sum_{x=a}^b\sum_{y=c}^d[\gcd(x,y)=k]\)。
分析
转化为二维差分,然后分别求:
\[\begin{aligned}
& \sum_{i=1}^n\sum_{j=1}^m [\gcd(i,j)=k] \\
&= \sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}
[\gcd(i,j)=1] \\
&= \sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}
\sum_{d|\gcd(i,j)}\mu(d) \\
&= \sum_{d=1}^{\min(\lfloor\frac{n}{k}\rfloor,\lfloor\frac{m}{k}\rfloor)}\mu(d)
\lfloor \frac{\lfloor\frac{n}{k}\rfloor}{d} \rfloor
\lfloor \frac{\lfloor\frac{m}{k}\rfloor}{d} \rfloor \\
\end{aligned}
\]
\[\begin{aligned}
& \sum_{p\in\operatorname{pr}}\sum_{i=1}^n\sum_{j=1}^n [\gcd(i,j)=p] \\
&= \sum_{p\in\operatorname{pr}}
\sum_{i=1}^{\lfloor\frac{n}{p}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{p}\rfloor} [\gcd(i,j)=1] \\
&= \sum_{p\in\operatorname{pr}} (\sum_{i=1}^{\lfloor\frac{n}{p}\rfloor}
2\sum_{j=1}^{i} [\gcd(i,j)=1] -1) \\
&= \sum_{p\in\operatorname{pr}} (2\sum_{i=1}^{\lfloor\frac{n}{p}\rfloor}
\varphi(i)-1) \\
\end{aligned}
\]
引理:\(\gcd(i,n)=\gcd(n-i,n)\)。
\[\begin{aligned}
& \sum_{i=1}^n \operatorname{lcm}(i,n) \\
&= \sum_{i=1}^n \frac{i\cdot n}{\gcd(i,n)} \\
&= \frac{1}{2} (
\sum_{i=1}^{n-1} \frac{i\cdot n}{\gcd(i,n)}
+ \sum_{i=1}^{n-1} \frac{(n-i)\cdot n}{\gcd(n-i,n)}
) + n \\
&= \frac{1}{2} \sum_{i=1}^{n-1} \frac{n^2}{\gcd(i,n)} + n \\
&= \frac{1}{2} \sum_{i=1}^{n} \frac{n^2}{\gcd(i,n)} + \frac{n}{2} \\
&= \frac{n}{2} (\sum_{i=1}^{n} \frac{n}{\gcd(i,n)} + 1) \\
&= \frac{n}{2} (\sum_{d|n} \frac{n}{d}\varphi(\frac{n}{d}) + 1) \\
\end{aligned}
\]
\(g(n)=\sum_{d|n} d\varphi(d)\) 是积性函数,线筛预处理即可,筛法推导:
对于 \(g(p^k)\),有:
\[\begin{aligned}
& g(p^k) \\
& = \sum_{i=0}^k p^i \varphi(p^i) \\
& = \sum_{i=0}^k p^{2i-1} (p-1) \\
\end{aligned}
\]
故有:
\[g(p^{k+1})=g(p^k)+ p^{2k+1} (p-1) \\
\]
现在看 \(g(i\cdot p),p|i\),设 \(i=a\cdot p^w,\gcd(a,p)=1\)。
\[\begin{aligned}
g(i\cdot p) &= g(a) \cdot g(p^{w+1}) \\
g(i) &= g(a) \cdot g(p^w) \\
\end{aligned}
\]
可以得到:
\[\begin{aligned}
g(i\cdot p) - g(i) &= g(a) p^{2w+1}(p-1) \\
g(i) - g(\frac{i}{d}) &= g(a) p^{2w-1}(p-1) \\
\end{aligned}
\]
联立可得:
\[\begin{aligned}
g(i\cdot p) &= g(i) + [g(i) - g(\frac{i}{d})] p^2 \\
\end{aligned}
\]
题意
求以下式子的值:
\[\sum_{i=1}^n \sum_{j=1}^m \operatorname{lcm}(i,j) \pmod {20101009}
\]
分析
\[\begin{aligned}
& \sum_{i=1}^n \sum_{j=1}^m \operatorname{lcm}(i,j) \\
&= \sum_{i=1}^n \sum_{j=1}^m \frac{i\cdot j}{\gcd(i,j)} \\
&= \sum_{d=1}^{\min(n,m)} d
\sum_{i=1}^{\lfloor \frac{n}{d} \rfloor} \sum_{j=1}^{\lfloor \frac{m}{d} \rfloor}
[\gcd(i,j)=1]i\cdot j \\
\end{aligned}
\]
设 \(\operatorname{sum}(n,m) = \sum_{i=1}^{n} \sum_{j=1}^{m}
[\gcd(i,j)=1]i\cdot j\)。
\[\begin{aligned}
&\operatorname{sum}(n,m) \\
&= \sum_{i=1}^{n} \sum_{j=1}^{m} \sum_{d|\gcd(i,j)} \mu(d) i\cdot j \\
&= \sum_{d=1}^{\min(n,m)} \mu(d) \sum_{i=1}^{n}[d|i] \sum_{j=1}^{m} [d|j] i\cdot j \\
&= \sum_{d=1}^{\min(n,m)} \mu(d) d^2 \sum_{i=1}^{\lfloor \frac{n}{d} \rfloor} \sum_{j=1}^{\lfloor \frac{m}{d} \rfloor} i\cdot j \\
&= \sum_{d=1}^{\min(n,m)} \mu(d) d^2 \sum_{i=1}^{\lfloor \frac{n}{d} \rfloor} i \sum_{j=1}^{\lfloor \frac{m}{d} \rfloor} j \\
\end{aligned}
\]
答案为:
\[\begin{aligned}
ans = \sum_{d=1}^{\min(n,m)} d \operatorname{sum}(\lfloor \frac{n}{d} \rfloor,\lfloor \frac{m}{d} \rfloor)
\end{aligned}
\]
发现可以用数论分块求 \(\operatorname{sum}\) 和 \(ans\),就变成了数论分块套数论分块。
题意
设 \(d(x)\) 为 \(x\) 的约数个数,求:
\[\begin{aligned}
& \sum_{i=1}^n\sum_{j=1}^m d(i\cdot j) \\
\end{aligned}
\]
分析
引理:\(d(i\cdot j) = \sum_{x|i}\sum_{y|j}[\gcd(x,y)=1]\)。
\[\begin{aligned}
& d(i\cdot j) \\
&= \sum_{x|i}\sum_{y|j}[\gcd(x,y)=1] \\
&= \sum_{x|i}\sum_{y|j}\sum_{p|\gcd(x,y)}\mu(p) \\
&= \sum_{p=1}^{\min(i,j)}\mu(p)\sum_{x|i}\sum_{y|j}[p|\gcd(x,y)] \\
&= \sum_{p|i,p|j} \mu(p) \sum_{x|\frac{i}{p}} \sum_{y|\frac{j}{p}} 1 \\
&= \sum_{p|i,p|j} \mu(p) d(\frac{i}{p}) d(\frac{j}{p}) \\
\end{aligned}
\]
现在带回去:
\[\begin{aligned}
& \sum_{i=1}^n\sum_{j=1}^m d(i\cdot j) \\
&= \sum_{i=1}^n\sum_{j=1}^m \sum_{p|i,p|j} \mu(p) d(\frac{i}{p}) d(\frac{j}{p}) \\
&= \sum_{p=1}^{\min(n,m)} \mu(p)
\sum_{i=1}^{\lfloor \frac{n}{p} \rfloor} d(i)
\sum_{j=1}^{\lfloor \frac{m}{p} \rfloor} d(j) \\
\end{aligned}
\]
假设 \(n = \prod_{i=1}^w p_i^{\alpha_i}\),其中 \(p_i\) 是互不相同的质数。
\[\because n = \prod_{i=1}^w p_i^{\alpha_i} \\
\therefore d(n) = \prod_{i=1}^w (\alpha_i+1) \\
\]
\(\mu,d\) 都是积性函数,都可以欧拉筛解决。
题意
设 \(\operatorname{cnt}(x)\) 表示 \(x\) 的素因子个数,给定 \(n,m,p\),求:
\[\sum_{i=1}^n \sum_{j=1}^m [\operatorname{cnt}(\gcd(i,j)) \le p] \\
\]
分析
\[\begin{aligned}
& \sum_{i=1}^n \sum_{j=1}^m [\operatorname{cnt}(\gcd(i,j)) \le p] \\
&= \sum_{G=1}^{\min(n,m)} [\operatorname{cnt}(G) \le p] \sum_{i=1}^n \sum_{j=1}^m [\gcd(i,j)=g] \\
&= \sum_{G=1}^{\min(n,m)} [\operatorname{cnt}(G) \le p]
\sum_{i=1}^{\lfloor \frac{n}{g} \rfloor} \sum_{j=1}^{\lfloor \frac{m}{g} \rfloor}
[\gcd(i,j)=1] \\
&= \sum_{G=1}^{\min(n,m)} [\operatorname{cnt}(G) \le p]
\sum_{i=1}^{\lfloor \frac{n}{g} \rfloor} \sum_{j=1}^{\lfloor \frac{m}{g} \rfloor}
\sum_{d|\gcd(i,j)} \mu(d) \\
\end{aligned}
\]
取出:
\[\begin{aligned}
&\operatorname{sum}(n,m) \\
&= \sum_{i=1}^{n} \sum_{j=1}^{m} \sum_{d|\gcd(i,j)} \mu(d) \\
&= \sum_{d=1}^{\min(n,m)} \mu(d) \sum_{i=1}^{n} [d|i] \sum_{j=1}^{m} [d|j] \\
&= \sum_{d=1}^{\min(n,m)} \mu(d) {\lfloor \frac{n}{d} \rfloor} {\lfloor \frac{m}{d} \rfloor} \\
\end{aligned}
\]
这部分可以数论分块。
带回原式:
\[\begin{aligned}
&\sum_{G=1}^{\min(n,m)} [\operatorname{cnt}(G) \le p]
\operatorname{sum}({\lfloor \frac{n}{G} \rfloor},{\lfloor \frac{m}{G} \rfloor}) \\
&= \sum_{G=1}^{\min(n,m)} [\operatorname{cnt}(G) \le p]
\sum_{d=1}^{\min({\lfloor \frac{n}{G} \rfloor},{\lfloor \frac{m}{G} \rfloor})} \mu(d)
{\lfloor \frac{n}{Gd} \rfloor} {\lfloor \frac{m}{Gd} \rfloor} \\
&= \sum_{G=1}^{\min(n,m)}
\sum_{d=1}^{\min({\lfloor \frac{n}{G} \rfloor},{\lfloor \frac{m}{G} \rfloor})}
[\operatorname{cnt}(G) \le p] \mu(d)
{\lfloor \frac{n}{Gd} \rfloor} {\lfloor \frac{m}{Gd} \rfloor} \\
&= \sum_{c=1}^{\min(n,m)}
{[\sum_{d|c} \mu(\frac{c}{d}) [\operatorname{cnt}(d)\le p]]}
{\lfloor \frac{n}{c} \rfloor} {\lfloor \frac{m}{c} \rfloor} \\
\end{aligned}
\]
设 \(c\mu(n) = \sum_{d|n} \mu(\frac{n}{d}) [\operatorname{cnt}(d)\le p]\),它可以 \(O(n\ln{n})\) 调和级数时间复杂度内求出。由于 \(p\) 真实有用的大小只有 \(\lfloor\log_2{n}\rfloor=18\),只要再做一个前缀和,对询问数论分块即可,时间复杂度 \(O(n\log_2{n} + Q\sqrt{n})\)。
题意
给定 \(n,m\),规定网格图上在 \((x,y)(x\in[1,n],y\in[1,m])\) 处有标记点,原点为 \((0,0)\)。
如果一条直线上最多有 \(k\) 个标记点,那么该直线的贡献为 \(2k+1\),求所有经过原点的直线的贡献和。
分析
法 1:Mobius 反演 + 狄利克雷卷积
原题相当于求:
\[\sum_{i=1}^n\sum_{j=1}^m [2\gcd(i,j)+1] \\
\]
那么我们化简之后会发现它是一个十分经典的问题:
\[\begin{aligned}
&\sum_{i=1}^n\sum_{j=1}^m [2\gcd(i,j)-1] \\
&=2\sum_{i=1}^n\sum_{j=1}^m \gcd(i,j) - nm \\
&=2\sum_{d=1}^{\min(n,m)} d \sum_{i=1}^{\lfloor \frac{n}{d} \rfloor}\sum_{j=1}^{\lfloor \frac{m}{d} \rfloor} [\gcd(i,j)=1] - nm \\
&=2\sum_{d=1}^{\min(n,m)} d \sum_{i=1}^{\min({\lfloor \frac{n}{d} \rfloor}{\lfloor \frac{m}{d} \rfloor})}\mu(i) {\lfloor \frac{n}{id} \rfloor}{\lfloor \frac{m}{id} \rfloor} - nm \\
&=2\sum_{i=1}^{\min(n,m)} [\sum_{d|i} \frac{i}{d}\mu(d)] {\lfloor \frac{n}{i} \rfloor}{\lfloor \frac{m}{i} \rfloor} - nm \\
\end{aligned}
\]
那么现在就有 \(90\%\) 的分数了。
然后看到 \(h(i) = \sum_{d|i} \frac{i}{d}\mu(d)\),这是一个狄利克雷卷积,我们尝试化简:
\[\begin{aligned}
h &= \operatorname{id} \ast \mu \\
h \ast 1 &= \operatorname{id} \ast \mu \ast 1 \\
h \ast 1 &= \operatorname{id} \ast (\mu \ast 1) \\
h \ast 1 &= \operatorname{id} \ast \varepsilon \\
h \ast 1 &= \operatorname{id} \\
h &= \varphi \\
\end{aligned}
\]
所以得到 \(h(i) = \varphi(i)\),即欧拉函数。
所以又可以得到原式为:
\[\begin{aligned}
&2\sum_{i=1}^{\min(n,m)} \varphi(i) {\lfloor \frac{n}{i} \rfloor}{\lfloor \frac{m}{i} \rfloor} - nm \\
\end{aligned}
\]
数论分块即可,复杂度 \(O(n)\)。
法 2:结合容斥
考虑求出:
\[g(x)=\sum_{i=1}^n\sum_{i=1}^m[\gcd(i,j)=x]
\]
设:
\[f(x)=\sum_{i=1}^n\sum_{i=1}^m[x|\gcd(i,j)]
\]
很容易得到:
\[f(x) = {\lfloor \frac{n}{x} \rfloor}{\lfloor \frac{m}{x} \rfloor}
\]
那么我们直接容斥,得到:
\[g(x) = f(x) - \sum_{x|i,i>x}^{i \cdot x \le \min(n,m)}g(i \cdot x)
\]
调和级数复杂度 \(O(n\ln{n})\)。
法 3:Mobius 变换
看到法 2 中:
\[\begin{cases}
g(x) = \sum_{i=1}^n\sum_{i=1}^m[\gcd(i,j)=x] \\
f(x) = \sum_{i=1}^n\sum_{i=1}^m[x|\gcd(i,j)] \\
\end{cases}
\]
可以得到 \(f(n) = \sum_{n|d} g(d)\),Mobius 变换一下即可得到 \(g(n) = \sum_{n|d} \mu(\frac{d}{n}) f(d)\)。
调和级数复杂度 \(O(n\ln{n})\)。
法 4:暴力
把法 1 中的 \(O(n\sqrt{n})\) 实现据说可以拿到满分。
BZOJ P3309 DZY Loves Math
比较简单的题目。
Möbius 变换
题意
给定 \(n\) 个数的序列 \(a\),其中 \(\forall i\in [1,n],a_i \in [1,m]\)。
求对于每个 \(d\in [1,m]\),有多少个序列 \(b\) 满足:
- \(\forall i\in [1,n],b_i \in [1,m]\)。
- \(\gcd_{i=1}^n b_i = d\)。
- 有恰好 \(k\) 个位置满足 \(a_i \neq b_i\)。
答案对 \(10^9+7\) 取模。
分析
首先,对于 \(d\),要求 \(\forall i\in[1,n],d|b_i\),那么我们就可以很简单地求出满足 \(d|\gcd_{i=1}^n b_i\) 的 \(b\) 序列的数量。
设 \(f(d)\) 表示满足 \(d|\gcd_{i=1}^n b_i\) 的 \(b\) 序列的数量,\(g(d)\) 表示满足 \(d=\gcd_{i=1}^n b_i\) 的 \(b\) 序列的数量。
所以 \(f(n) = \sum_{n|d} g(d)\),进行 Mobius 变换,得到 \(g(n) = \sum_{n|d}\mu(\frac{n}{d})f(d)\)。
现在我们求一下 \(f\):
设 \(cnt(d)\) 表示 \(a\) 序列中有几个是 \(d\) 的倍数,这可以调和级数求出。
\[f(d) = {cnt(d)\choose n-k}
({\lfloor \frac{m}{d} \rfloor}-1)^{cnt(d)-(n-k)}
{\lfloor \frac{m}{d} \rfloor}^{n-cnt(d)}
\]
当上式中有不合法成分,\(f(n)\) 取 \(0\)。
前文有提到,在“Möbius 反演”部分。
结合基础算法
题意
\(T\) 个询问:求第 \(K\) 个无平方质因子的正整数。
分析
法 1:Mobius 函数+二分
直接求非常不可做,我们考虑二分:每次二分 \(mid\),要求出 \(\le mid\) 有多少个满足要求的数。
我们很容易就可以想到一种容斥:
先减去 \(2^2,3^2,5^2\) 等质数的平方,再加上 \(6^2,10^2,14^2\) 等数的平方……
一直进行下去,首先我们会发现这个数的大小肯定是小于等于 \(\sqrt{K}\) 的,那么我们可以把范围缩小下来。
然后观察上面的数列,发现它们在计算中的系数就是 Mobius 函数,从定义即可推知,那么直接就解决了。
复杂度 \(O(\sqrt{n}+T\sqrt{K}\log_2{K})\),注意预处理和二分范围。
法 2:杜教筛+二分
没学过。
法 3:分块打表
……
结合数据结构
题意
有 \(Q\) 个询问,给定 \(n,m,a\),求:
\[\sum_{i=1}^n \sum_{j=1}^m (\sum_{d|\gcd(i,j)} d)[\sum_{d|\gcd(i,j)} d\le a] \\
\]
分析
设 \(\sigma(x)\) 表示 \(x\) 的因子之和,它可以欧拉筛。
把 \(a\) 的限制去掉,可以得到:
\[\begin{aligned}
& \sum_{i=1}^n \sum_{j=1}^m \sigma(\gcd(i,j)) \\
&= \sum_{d=1}^{\min(n,m)} \sigma(d) \sum_{i=1}^n \sum_{j=1}^m [\gcd(i,j)=d] \\
&= \sum_{d=1}^{\min(n,m)} \sigma(d) \sum_{i=1}^{\lfloor \frac{n}{d} \rfloor} \sum_{j=1}^{\lfloor \frac{m}{d} \rfloor} [\gcd(i,j)=1] \\
&= \sum_{d=1}^{\min(n,m)} \sigma(d) \sum_{i=1}^{\lfloor \frac{n}{d} \rfloor} \sum_{j=1}^{\lfloor \frac{m}{d} \rfloor} \sum_{x|\gcd(i,j)} \mu(x) \\
&= \sum_{d=1}^{\min(n,m)} \sigma(d)
\sum_{x=1}^{\min({\lfloor \frac{n}{d} \rfloor},{\lfloor \frac{m}{d} \rfloor})} \mu(x)
{\lfloor \frac{n}{dx} \rfloor} {\lfloor \frac{m}{dx} \rfloor} \\
&= \sum_{i=1}^{\min(n,m)} {\lfloor \frac{n}{i} \rfloor} {\lfloor \frac{m}{i} \rfloor}
\sum_{d|i} \sigma(d) \mu(\frac{i}{d})\\
\end{aligned}
\]
设 \(h(x) = \sum_{d|x} \sigma(d)\mu(\frac{x}{d})\)。
发现当 \(\sigma(d)\le a\) 时,它才能产生贡献,于是我们有了离线询问的想法。
用树状数组来存储 \(h(x)\) 的前缀和,然后处理离线的询问时直接数论分块解决。
修改复杂度均摊是一个调和级数乘树状数组的对数。
故总复杂度为 \(O(Q\sqrt{n}\log_2{n}+n\ln{n}\log_2{n})\)。
结合其他数学知识
本题结合了容斥。
前文有提到,在“Möbius 反演”部分。
本题结合了 Bernoulli 数,Lagrange 插值。
分析
引理:对于 Möbius 函数 \(\mu(n)\),有:(\(p\) 代表质数)
\[\mu(n) =
\begin{cases}
1 & n=1 \\
0 & p^2|n \\
(-1)^k & n=\prod_{i=1}^k p_i \\
\end{cases}
\]
同时可推知:
\[\sum_{d|n} \mu(d) = [n=1] \\
\]
构造函数:
\[\begin{aligned}
F(n) &= \sum_{i=1}^n i^k \\
G(n) &= \sum_{i=1}^n i^k [\gcd(i,n)=1] \\
\end{aligned}
\]
我们的答案即为 \(G\)。
\[F(n) = \sum_{d|n}d^k G(\frac{n}{d}) \\
\]
根据引理,做 Möbius 反演,则有:
\[G(n) = \sum_{d|n} \mu(d) d^k F(\frac{n}{d}) \\
\]
众所周知,通过高阶差分推得 \(F(n)\) 是 \(k+1\) 次多项式是一个经典 Lagrange 插值或者 Bernoulli 数问题,那么我们将它写成如下形式:
\[F(x) = \sum_{i=0}^{k+1} f_i x^i
\]
展开,得:
\[\begin{aligned}
G(n) &= \sum_{d|n} \mu(d) d^k \sum_{i=0}^{k+1} f_i (\frac{n}{d})^i \\
G(n) &= \sum_{i=0}^{k+1} f_i n^i \sum_{d|n} \mu(d) d^{k-i} \\
\end{aligned}
\]
\(\mu(d)d^{k-i}\) 为积性函数,我们又可以化简:
\[\begin{aligned}
G(n) &= \sum_{i=0}^{k+1} f_i n^i \sum_{d|n} \prod_{p_j|d} \mu(p_j^t) {p_j}^{t(k-i)} \\
G(n) &= \sum_{i=0}^{k+1} f_i n^i \prod_{p_j|n} \sum_{t=0}^{a_j} \mu(p_j^t) {p_j}^{t(k-i)} \\
\end{aligned}
\]
那么根据引理,幂次最高就是 \(1\),所以式子又可以化简:
\[G(n) = \sum_{i=0}^{k+1} f_i n^i \prod_{p_j|n} (1-p_j^{k-i})
\]
然后把 Lagrange 插值拆开做多项式乘法即可,又或者 Bernoulli 数等幂求和,不过当然是后者更好用。
Bernoulli 数等幂求和:
定义 \(S_p = \sum_{i=1}^{n-1} i^p\),则有:(\(B_i\) 表示第 \(i\) 项伯努利数)
\[\begin{aligned}
S_1 &= \frac{1}{2} [{2\choose 0}n^2 - {2\choose 1}\frac{1}{2}n^1] \\
S_2 &= \frac{1}{3} [{3\choose 0}n^3 - {3\choose 1}\frac{1}{2}n^2
+ {3\choose 2}\frac{1}{6}n^1 ] \\
S_3 &= \frac{1}{4} [{4\choose 0}n^4 - {4\choose 1}\frac{1}{2}n^3
+ {4\choose 2}\frac{1}{6}n^2 + {4\choose 3}0n^1] \\
& \dots \\
S_p &= \frac{1}{p+1}\sum_{i=0}^p{p+1 \choose i} B_i n^{p-i+1}\\
\end{aligned}
\]
同时发现每行系数之和为 \(0\),那么可以得到伯努利数递推式:
\[\begin{aligned}
B_0 &= 1 \\
\sum_{m=0}^p{p+1 \choose m} B_m &= 0 \\
B_m &= [m=0] - \sum_{k=0}^{m-1}{m\choose k}\frac{B_k}{m-k+1} \\
\end{aligned}
\]
那么可知:
\[f_i = {k+1\choose k+1-i}\frac{B_{k+1-i}}{k+1} \\
\]
求和
本题结合了容斥,并且有用 Dirichlet 后缀和加速的方法。
题意
给定 \(n,m\),求:
\[F(n,m) = \sum_{i=1}^n \sum_{j=1}^m \mu(i)\mu(j)\mu(i\cdot j) \\
\]
其中 \(\mu(i),\sigma(i)\) 分别表示 \(i\) 的莫比乌斯函数以及 \(i\) 的约数和。
分析
法 1
对于 \(i,j\),如果 \(\mu(i),\mu(j)\neq0\),那么有:
\[\sigma(i\cdot j) = \sigma(\frac{i}{\gcd(i,j)}) \sigma(\frac{j}{\gcd(i,j)}) \sigma({\gcd(i,j)}^2) \\
\]
代入原式:
\[\begin{aligned}
&\sum_{i=1}^n \sum_{j=1}^m \mu(i) \mu(j) \sigma(i\cdot j) \\
&=\sum_{i=1}^n \sum_{j=1}^m \mu(i) \mu(j) \sigma(\frac{i}{\gcd(i,j)}) \sigma(\frac{j}{\gcd(i,j)}) \sigma(\gcd(i,j)^2) \\
&=\sum_{d=1}^{\min(n,m)} \sigma(d^2) \sum_{i=1}^n \sum_{j=1}^m \mu(i) \mu(j) \sigma(\frac{i}{d}) \sigma(\frac{j}{d}) [\gcd(i,j)=d] \\
&=\sum_{d=1}^{\min(n,m)} \sigma(d^2) \sum_{i=1}^{\lfloor\frac{n}{d}\rfloor} \sum_{j=1}^{\lfloor\frac{m}{d}\rfloor} \mu(id) \mu(jd) \sigma(i) \sigma(j) [\gcd(i,j)=1] \\
&=\sum_{d=1}^{\min(n,m)} \sigma(d^2) \sum_{i=1}^{\lfloor\frac{n}{d}\rfloor} \mu(id) \sigma(i) \sum_{j=1}^{\lfloor\frac{m}{d}\rfloor} \mu(jd) \sigma(j) \sum_{t|\gcd(i,j)} \mu(t) \\
&=\sum_{d=1}^{\min(n,m)} \sigma(d^2) \sum_{t=1}^{\min({\lfloor\frac{n}{d}\rfloor},{\lfloor\frac{m}{d}\rfloor})} \mu(t) \sum_{t|i}^{\lfloor\frac{n}{d}\rfloor} \mu(id) \sigma(i) \sum_{t|j}^{\lfloor\frac{m}{d}\rfloor} \mu(jd) \sigma(j) \\
&=\sum_{d=1}^{\min(n,m)} \sigma(d^2) \sum_{t=1}^{\min({\lfloor\frac{n}{d}\rfloor},{\lfloor\frac{m}{d}\rfloor})} \mu(t) \sum_{i=1}^{\lfloor\frac{n}{td}\rfloor} \mu(tid) \sigma(ti) \sum_{j=1}^{\lfloor\frac{m}{td}\rfloor} \mu(tjd) \sigma(tj) \\
\end{aligned}
\]
设 \(\operatorname{sum}_{t,d}(x) = \sum_{i=1}^{x} \mu(tid)\sigma(ti)\)。
原式化为:
\[\begin{aligned}
&\sum_{d=1}^{\min(n,m)} \sigma(d^2) \sum_{t=1}^{\min({\lfloor\frac{n}{d}\rfloor},{\lfloor\frac{m}{d}\rfloor})} \mu(t) \sum_{i=1}^{\lfloor\frac{n}{td}\rfloor} \mu(tid) \sigma(ti) \sum_{j=1}^{\lfloor\frac{m}{td}\rfloor} \mu(tjd) \sigma(tj) \\
&= \sum_{d=1}^{\min(n,m)} \sigma(d^2)
\sum_{t=1}^{\min({\lfloor\frac{n}{d}\rfloor},{\lfloor\frac{m}{d}\rfloor})} \mu(t)
\operatorname{sum}_{t,d}(\lfloor\frac{n}{td}\rfloor)
\operatorname{sum}_{t,d}(\lfloor\frac{m}{td}\rfloor) \\
\end{aligned}
\]
它的复杂度近似于 \(O(n\ln^2{n})\)。
对于这类和式时间复杂度:
\[\sum_{x_1=1}^m \sum_{x_2=1}^{\frac{m}{x_1}} \dots \sum_{x_i=1}^{\frac{m}{\prod_{j=1}^{i-1}}} \dots \sum_{x_n=1}^{\frac{m}{\prod_{j=1}^{n-1}}} 1 \\
\]
可以积分得到近似复杂度为 \(O(\frac{m\ln^{n-1}{m}}{(n-1)!})\)。
法 2
考虑把 \(\sigma\) 拆开:(假设 \(n\le m\))
\[\begin{aligned}
&\sum_{i=1}^n \sum_{j=1}^m \mu(i) \mu(j) \sigma(i\cdot j) \\
&= \sum_{i=1}^n \sum_{j=1}^m \mu(i) \mu(j) \sum_{k|(i\cdot j)} k \\
&= \sum_{i=1}^n \sum_{k=1}^{nm} \sum_{\frac{k}{\gcd(i,k)}|j}^m \mu(i) \mu(j) k \\
&= \sum_{g=1}^n \sum_{i=1}^{n} \sum_{k=1}^{nm} [\gcd(i,k)=g] \sum_{\frac{k}{g}|j}^m \mu(i) \mu(j) k \\
&= \sum_{g=1}^n \sum_{i=1}^{{\lfloor \frac{n}{g} \rfloor}} \sum_{k=1}^{{\lfloor \frac{nm}{g} \rfloor}} [\gcd(i,k)=1] \sum_{k|j}^m \mu(gi) \mu(j) kg \\
&= \sum_{g=1}^n \sum_{i=1}^{{\lfloor \frac{n}{g} \rfloor}} \sum_{k=1}^{{\lfloor \frac{nm}{g} \rfloor}} [\gcd(i,k)=1] \sum_{j=1}^{{\lfloor \frac{m}{k} \rfloor}} \mu(gi) \mu(jk) kg \\
&= \sum_{g=1}^n g \sum_{i=1}^{{\lfloor \frac{n}{g} \rfloor}} \mu(gi) \sum_{k=1}^{{\lfloor \frac{nm}{g} \rfloor}} k [\gcd(i,k)=1] \sum_{j=1}^{{\lfloor \frac{m}{k} \rfloor}} \mu(jk) \\
&= \sum_{i=1}^{n} \sum_{g=1}^{\lfloor \frac{n}{i} \rfloor} g\mu(gi) \sum_{k=1}^{{\lfloor \frac{nm}{g} \rfloor}} k \sum_{d|\gcd(i,k)} \mu(d) \sum_{j=1}^{{\lfloor \frac{m}{k} \rfloor}} \mu(jk) \\
&=\sum_{d=1}^n \mu(d) \sum_{i=1}^{n} [d|i] \sum_{g=1}^{\lfloor \frac{n}{i} \rfloor} g\mu(gi) \sum_{k=1}^{{\lfloor \frac{nm}{g} \rfloor}} k [d|k] \sum_{j=1}^{{\lfloor \frac{m}{k} \rfloor}} \mu(jk) \\
\end{aligned}
\]
设:
\[f(i) = \sum_{g=1}^{\lfloor \frac{n}{i} \rfloor} g\mu(gi) \\
h(k) = k \sum_{j=1}^{{\lfloor \frac{m}{k} \rfloor}} \mu(jk) \\
\]
\(f,h\) 可以调和级数复杂度内求出,原式化为:
\[\begin{aligned}
&\sum_{d=1}^n \mu(d) \sum_{i=1}^{n} [d|i] \sum_{g=1}^{\lfloor \frac{n}{i} \rfloor} g\mu(gi) \sum_{k=1}^{{\lfloor \frac{nm}{g} \rfloor}} k [d|k] \sum_{j=1}^{{\lfloor \frac{m}{k} \rfloor}} \mu(jk) \\
&=\sum_{d=1}^n \mu(d) \sum_{d|i}^{n} \sum_{g=1}^{\lfloor \frac{n}{i} \rfloor} g\mu(gi) \sum_{d|k}^{\min(m,{\lfloor \frac{nm}{g} \rfloor})} h(k) \\
&=\sum_{d=1}^n \mu(d) \sum_{d|i}^{n} f(i) \sum_{d|k}^{m} h(k) \\
\end{aligned}
\]
调和级数时间复杂度内可以解决,总时间复杂度 \(O(n\ln{n})\)。
法 3
如果你学过 Dirichlet 前、后缀和,那么它还可以优化。
\[f(i) = \frac{1}{i} \sum_{x|i}^{n} x\mu(x) \\
h(k) = k \sum_{k|y}^{m} \mu(y) \\
\]
其中 \(f_0(x) = \sum_{x|i}^{n} x\mu(x)\) 以及 \(h_0(k) = \sum_{k|y}^{m} \mu(y)\),都可以 Dirichlet 后缀和优化。
包括最后统计答案的部分:
\[\sum_{d=1}^n \mu(d) \sum_{d|i}^{n} f(i) \sum_{d|k}^{m} h(k)
\]
\(F(d) = \sum_{d|i}^n f(i)\) 和 \(H(d) = \sum_{d|k}^m h(k)\) 也都可以 Dirichlet 后缀和优化。
最后复杂度 \(O(n\ln{\ln{n}})\)。