莫比乌斯反演

莫比乌斯函数定义和相关性质

对于数 nn,设其质因数分解的结果为 n=p1q1×p2q2××pkqkn= {p_1}^{q_1} \times p_2^{q_2} \times \cdots \times {p_k}^{q_k},定义对于 nn 的莫比乌斯函数 μ(n)={1n=10x[1,k],qx>1(1)kotherwise\mu(n) = \begin{cases} 1 && n = 1 \\ 0 && \exists x \in [1,k],q_x > 1 \\ (-1)^k && \text{otherwise} \end{cases}

即,如果 n=1n=1,那么 μ(n)=1\mu(n) = 1,若存在 qi>1q_i > 1,那么 μ(n)=0\mu(n) = 0,否则 μ(n)=(1)k\mu(n) = (-1)^k

举个例子,6=2×36=2 \times 3k=2k=2,那么 μ(6)=(1)2=1\mu(6) = {(-1)}^{2} = 1,而 24=23×324 = 2^3 \times 33>13>1,则 μ(24)=0\mu(24) = 0

比较实用的性质:dnμ(d)={1n=10n1\sum \limits_{d|n} \mu(d) = \begin{cases} 1 && n = 1 \\ 0 && n \neq 1\end{cases}

莫比乌斯反演

考虑两个函数 F(n)F(n)f(n)f(n),并且满足等式 F(n)=dnf(d)F(n) = \sum \limits_{d \mid n} f(d)。那么有 f(n)=dnμ(d)×F(nd)f(n) = \sum \limits_{d \mid n} \mu(d) \times F(\dfrac{n}{d})

证明:

dnμ(d)×F(nd)=dnμ(d)×dndf(d)=dnf(d)×dndμ(d)\sum \limits_{d \mid n} \mu(d) \times F(\dfrac{n}{d}) = \sum \limits_{d \mid n} \mu(d) \times \sum \limits_{d^{'} \mid {\frac{n}{d}}} f(d^{'}) = \sum \limits_{d^{'} \mid n} f(d^{'}) \times \sum \limits_{d \mid \frac{n}{d^{'}}} \mu(d)

根据第一部分的性质,当且仅当 d=nd^{'} = n 时,dndμ(d)=1\sum \limits_{d \mid \frac{n}{d^{'}}} \mu(d) = 1,可以得到式子等于 f(n)f(n)

例题

P3327 [SDOI2015]约数个数和

由于 d(nm)=injm[gcd(i,j)=1]d(nm) = \sum \limits_{i \mid n} \sum \limits_{j \mid m} [\gcd(i,j)=1]

所以原式可以化成:

i=1nj=1md(i,j)=i=1nj=1mkipj[gcd(k,p)=1]=i=1nj=1mkipjdgcd(k,p)μ(d)=i=1nj=1md=1min(n,m)μ(d)kipj[dk]×[dp]=d=1min(n,m)μ(d)dkdpnk×mp=d=1min(n,m)μ(d)x=1ndy=1mdnxdmyd=d=1min(n,m)μ(d)×(x=1ndnxd)×(y=1mdmyd)\begin{aligned} \sum \limits_{i=1}^n \sum \limits_{j=1}^m d(i,j) &= \sum \limits_{i=1}^n \sum \limits_{j=1}^m \sum \limits_{k \mid i} \sum \limits_{p \mid j} [\gcd(k,p)=1]\\ &= \sum \limits_{i=1}^n \sum \limits_{j=1}^m \sum \limits_{k \mid i} \sum \limits_{p \mid j} \sum \limits_{d \mid \gcd(k,p)} \mu(d) \\ &= \sum \limits_{i=1}^n \sum \limits_{j=1}^m \sum \limits_{d = 1}^{\min(n,m)} \mu(d) \sum \limits_{k \mid i} \sum \limits_{p \mid j} [d \mid k] \times [d \mid p] \\ &= \sum \limits_{d=1}^{\min(n,m)} \mu(d) \sum \limits_{d \mid k} \sum \limits_{d \mid p} \lfloor \frac{n}{k} \rfloor \times \lfloor \frac{m}{p} \rfloor \\ &= \sum \limits_{d=1}^{\min(n,m)} \mu(d) \sum \limits_{x=1}^{\lfloor \frac{n}{d} \rfloor} \sum \limits_{y=1}^{\lfloor \frac{m}{d} \rfloor} \lfloor \frac{n}{xd}\rfloor \lfloor \frac{m}{yd} \rfloor \\ &= \sum \limits_{d=1}^{\min(n,m)} \mu(d) \times (\sum \limits_{x=1}^{\lfloor \frac{n}{d} \rfloor} \lfloor \frac{n}{xd}\rfloor) \times (\sum \limits_{y=1}^{\lfloor \frac{m}{d} \rfloor} \lfloor \frac{m}{yd}\rfloor)\end{aligned}

可以发现最后的右边两个式子形式相同,均为 x=1ppx\sum \limits_{x=1}^p \lfloor \frac{p}{x} \rfloor。容易发现这个东西可以数论分块预处理。

于是令函数 f(x)=i=1xxif(x) = \sum \limits_{i=1}^x \lfloor \frac{x}{i} \rfloor

那么原式等于 d=1min(n,m)μ(d)×f(nd)×f(md)\sum \limits_{d=1}^{\min(n,m)} \mu(d) \times f(\lfloor \frac{n}{d} \rfloor) \times f(\lfloor \frac{m}{d} \rfloor)。数论分块即可。

代码。

P1829 [国家集训队]Crash的数字表格 / JZPTAB

题意:给定 n,mn,m,求 i=1nj=1mlcm(i,j)\sum \limits_{i=1}^n \sum \limits_{j=1}^m \operatorname{lcm}(i,j)2010100920101009 取余的结果。

以下假设 nmn \leq mn>mn>m 交换即可。

考虑推式子:

i=1nj=1mlcm(i,j)=i=1nj=1mijgcd(i,j)=d=1ni=1nj=1mijd[gcd(i,j)=d]=d=1ni=1ndj=1mdijd[gcd(i,j)=1]=d=1ni=1ndj=1mdijdxgcd(i,j)μ(x)=d=1ndx=1ndμ(x)i=1ndj=1mdij[xgcd(i,j)]=d=1ndx=1ndμ(x)xa=1ndxb=1mdx2ab=d=1ndx=1ndμ(x)x2xa=1ndaxb=1mdb\begin{aligned} \sum \limits_{i=1}^n \sum \limits_{j=1}^m \operatorname{lcm}(i,j) &= \sum \limits_{i=1}^n \sum \limits_{j=1}^m \frac{ij}{\gcd(i,j)} \\&= \sum \limits_{d=1}^n \sum \limits_{i=1}^n \sum \limits_{j=1}^m \frac{ij}{d}[\gcd(i,j)=d] \\ &= \sum \limits_{d=1}^n \sum \limits_{i=1}^{\lfloor \frac{n}{d} \rfloor} \sum \limits_{j=1}^{\lfloor \frac{m}{d} \rfloor} ijd[\gcd(i,j)=1] \\ &= \sum \limits_{d=1}^n \sum \limits_{i=1}^{\lfloor \frac{n}{d} \rfloor} \sum \limits_{j=1}^{\lfloor \frac{m}{d} \rfloor} ijd \sum \limits_{x \mid \gcd(i,j)} \mu(x) \\ &= \sum \limits_{d=1}^n d\sum \limits_{x=1}^{\lfloor \frac{n}{d} \rfloor} \mu(x) \sum \limits_{i = 1}^{\lfloor \frac{n}{d} \rfloor} \sum \limits_{j = 1}^{\lfloor \frac{m}{d} \rfloor} ij[x \mid \gcd(i,j)] \\ &= \sum \limits_{d=1}^n d \sum \limits_{x=1}^{\lfloor \frac{n}{d} \rfloor} \mu(x) \sum \limits_{xa=1}^{\lfloor \frac{n}{d} \rfloor} \sum \limits_{xb=1}^{\lfloor \frac{m}{d} \rfloor} x^2ab \\ &= \sum \limits_{d=1}^n d \sum \limits_{x=1}^{\lfloor \frac{n}{d} \rfloor} \mu(x)x^2\sum \limits_{xa=1}^{\lfloor \frac{n}{d} \rfloor}a\sum\limits_{xb=1}^{\lfloor \frac{m}{d} \rfloor}b\end{aligned}

容易发现后面两项是等差数列,而 μ(x)x2\mu(x)x^2 可以预处理,枚举 dd 后对 xx 数论分块即可。

posted @   HappyBobb  阅读(5)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示