莫比乌斯反演学习笔记

有错可以评论,作者刚学可能不懂。

前置知识

数论分块。

反演

若已知 \(f(n)\)\(g(n)\) 的转化关系,还能反推出 \(g(n)\) 转化到 \(f(n)\) 的转化关系,这个过程就叫反演。

莫比乌斯函数

\(n\) 分解之后为 \(n=\prod\limits_{i=1}^m p_i^{c_i}\),定义莫比乌斯函数 \(\mu(n)\)

\[\mu(n)=\left\{\begin{matrix} 0 & \exists i\in[1,m],c_i>1 \\ (-1)^m & \forall i\in [1,m],c_i=1 \end{matrix}\right.\]

莫比乌斯反演

已知 \(F(n)=\sum\limits_{d\mid n} f(d)\),设 \(f(n)=\sum\limits_{d\mid n}\mu(d)F(\frac{n}{d})\)

而这是 \(\mu\) 原来的定义式,现在说这是一个性质。最后根据这个式子构造出了莫比乌斯函数。

因子形式

\[F(n)=\sum\limits_{d\mid n}f(d) \]

\[f(n)=\sum\limits_{d\mid n} \mu(d)F(\frac{n}{d}) \]

证明:展开或者卷积形式证。

倍数形式

\[F(n)=\sum\limits_{n\mid d}f(d) \]

\[f(n)=\sum\limits_{n\mid d}\mu(\frac{d}{n})F(d) \]

其中 \(n\le d\le N\),当 \(n>N\) 时,则 \(f(n)=F(n)=0\)

解题

  • 一般在 \(f\) 无法直接求解时,就可以构造 \(F(n)=\sum\limits_{d\mid n}f(d)\) 或者 \(F(n)=\sum\limits_{n\mid d}f(d)\),求出更好求解的 \(F(n)\),再利用枚举倍数的技巧 \(O(n\log n)\) 时间复杂度下用过反演公式求解 \(f(n)\)

  • 也可以用 \([\gcd(i,j)=1]=\sum\limits_{d\mid \gcd(i,j)}\mu(d)\) 来化简,然后改为枚举 \(d\)

呃呃呃呃,其实莫比乌斯反演的套路就那几个,难的是化简式子之后的最后一步。

练习题

link

posted @ 2025-02-07 10:26  _E_M_T  阅读(34)  评论(0)    收藏  举报