【笔记】莫比乌斯反演
过了这么久,今天来重温一下这个知识点 。
前置芝士
容斥函数(\(\mu\)):正版
积性函数(\(\phi\)):经常用到
正题
三个等式
\[\mu * I = \epsilon
\]
\[\phi * I = id
\]
\[\mu * id = \phi
\]
其中 \(I(n) = 1\),\(id(n) = n\),\(\epsilon(n) = \left\{ \begin{array}{**lr**} 1, ~~n = 1 \\ 0, ~~n \not= 1 \end{array} \right.\) 。
得
\[\epsilon(n) = \sum_{d \mid n}\mu(d) * I(\frac{n}{d}) = \sum_{d \mid n}\mu(d)
\]
\[id(n) = \sum_{d \mid n}\phi(d) * I(\frac{n}{d}) = \sum_{d \mid n}\phi(d) = n
\]
\[\phi(n) = \sum_{d \mid n}\mu(d) * id(\frac{n}{d})
\]
满足交换律,结合律,分配率 。
经典问题
问题 1
给定 \(N\),\(M\),求
\[\sum^{N}_{i = 1} \sum^{M}_{j = 1} \text{gcd}(i, ~j)
\]
解法(推式子)
将
\[\sum^{N}_{i = 1} \sum^{M}_{j = 1} \text{gcd}(i, ~j)
\]
- 变形
\[\sum^{N}_{i = 1} \sum^{M}_{j = 1} id[\text{gcd}(i, ~j)]
\]
- 增加枚举变量
\[\sum^{N}_{i = 1} \sum^{M}_{j = 1} \sum_{d \mid \text{gcd}(i, ~j)} \phi(d)
\]
- 交换枚举顺序
\[\sum^{\text{min}(N, ~M)}_{d = 1} \sum^{\lfloor \frac{N}{d} \rfloor}_{i = 1} \sum^{\lfloor \frac{M}{d} \rfloor}_{j = 1} \phi(d)
\]
-
\(d\) 是 \(i, ~j\) 的 \(\text{gcd}\) 的因子,因此 \(d\) 也是 \(i, ~j\) 的因子,\(i, ~j\) 是 \(d\) 的倍数 。因为 \(\text{gcd}(i, ~j)\) 的最大值为 \(\text{min}(i, ~j)\),所以 \(d\) 的最大值为 \(\text{min}(i, ~j)\) 。
-
将 \(d\) 提前后,\(i, ~j\) 的枚举意义不再是枚举数字的值,而是枚举 \(d\) 出现的次数,即原数字 \(i, ~j\) 是 \(d\) 的倍数的次数,因此 \(N, ~M\) 除 \(d\) 并向下取整 。
- 删除无用变量
\[\sum^{\text{min}(N, ~M)}_{d = 1} \lfloor \frac{N}{d} \rfloor \lfloor \frac{M}{d} \rfloor \phi(d)
\]
接下来用筛法求 \(\phi\) 就好了 。
问题 2
给定 \(N\),\(M\),\(K\),求
\[\sum^{N}_{i = 1} \sum^{M}_{j = 1} \text{gcd}(i, ~j) = K
\]
解法
让
\[\sum^{N}_{i = 1} \sum^{M}_{j = 1} \text{gcd}(i, ~j) = K
\]
先变形
\[\sum^{\frac{N}{K}}_{i = 1} \sum^{\frac{M}{K}}_{j = 1} \text{gcd}(i, ~j) = 1
\]
众所周知,两个数同时除去它们的 \(\text{gcd}\) 后,剩下的两个数互质,因此令 \(N, ~M\) 除 \(K\),求 \(i, ~j\) 的互质对数 。
接下来再变形
\[\sum^{\frac{N}{K}}_{i = 1} \sum^{\frac{M}{K}}_{j = 1} \epsilon[\text{gcd}(i, ~j)]
\]
剩下的步骤就与上一个问题步骤一样了 。
最后
莫反的题都比较板,就是有点费脑子与头发,不过这问题不大,可以自己到洛谷找题,反正裸题重题一大堆,都是经验哦 。
祝您 RP++,AK NOI!!