莫比乌斯反演题目选做

置顶公式:

\[\sum_{d|n}\mu(d)\begin{cases} 1 \ \ \ \ \ n = 1 \\ \\ 0 \ \ \ \ \ n \neq 1 \end{cases}\]

\[\mu * 1 = \epsilon \]

\[\sum_{d|n} \mu(d)= \epsilon(n) \]

\[\phi(n)=\sum_{d|n} d \times \mu(\dfrac{n}{d}) \]

\[[\gcd(i,j)=1] = \sum_{d|\gcd(i,j)} \mu(d) \]

所谓学习,即为做题。

P3455 [POI2007]ZAP-Queries

求:

\[\sum_{i=1}^a\sum_{j=1}^b [\gcd(i,j)=d] \]

\[\sum_{i=1}^{x=\lfloor \frac{a}{d} \rfloor}\sum_{j=1}^{y=\lfloor \frac{b}{d} \rfloor} [\gcd(i,j)=1] \]

\[\sum_{i=1}^{x}\sum_{j=1}^{y} \sum_{k|\gcd(i,j)}^x \mu(k) \]

\[\sum_{k=1}^x \mu(k)\sum_{i=1}^{x}[k|i]\sum_{j=1}^{y}[k|j] \]

\[\sum_{k=1}^x \mu(k)\lfloor\dfrac{x}{k}\rfloor\lfloor\dfrac{y}{k}\rfloor \]

整除分块即可。

P2522 [HAOI2011]Problem b

求:

\[\sum_{i=a}^b\sum_{j=c}^d[\gcd(x,y)=k] \]

用 P3455 的式子容斥即可。

OJ6388 gcd求和

求:

\[\sum_{i=1}^n\sum_{j=1}^m \gcd(i,j) \]

\(n<m\)

\[\sum_{d=1}^n d\sum_{i=1}^n \sum_{j=1}^m[\gcd(i,j)=d] \]

\[\sum_{d=1}^n d\sum_{i=1}^{\frac{n}{d}} \sum_{j=1}^{\frac{m}{d}}[\gcd(i,j)=1] \]

\[\sum_{d=1}^n d\sum_{i=1}^{\frac{n}{d}} \sum_{j=1}^{\frac{m}{d}}\sum_{D|\gcd(i,j)} \mu(D) \]

\[\sum_{d=1}^n\sum_{D=1}^{\lfloor\frac{n}{d}\rfloor} d \lfloor \frac{n}{dD} \rfloor \lfloor \frac{m}{dD} \rfloor \]

直接枚举 \(T=dD\)

\[\sum_{T=1}^n \varphi(T) \lfloor \dfrac{n}{T} \rfloor \lfloor\dfrac{m}{T} \rfloor \]

整除分块即可。

P1447 [NOI2010]能量采集

求:

\[-n\times m+2\times \sum_{i=1}^n\sum_{j=1}^m\gcd(i,j) \]

看 OJ6388。

P4450 双亲数

求:

\[\sum_{i=1}^A\sum_{j=i}^B [\gcd(a,b)=d] \]

假设 \(A<B\)

\[\sum_{i=1}^{\frac{A}{d}}\sum_{j=1}^{\frac{B}{d}}[\gcd(a,b)=1] \]

\[\sum_{i=1}^{\frac{A}{d}}\sum_{j=1}^{\frac{B}{d}}\sum_{d|i,d|j}\mu(d) \]

\[\sum_{d=1}^{\lfloor \frac{A}{d}\rfloor} \mu(d) \sum_{i=1}^{\lfloor \frac{A}{d}\rfloor}\sum_{j=1}^{\lfloor \frac{B}{d}\rfloor}1 \]

\[\sum_{d=1}^{\lfloor \frac{A}{d}\rfloor} \mu(d) \lfloor \dfrac{A}{d} \rfloor \lfloor \dfrac{B}{d}\rfloor \]

整除分块即可。

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

求:

\[\sum_{i=1}^n\sum_{j=1}^m \operatorname{lcm}(i,j) \bmod 20101009 \]

假设 \(n<m\)

\[\sum_{i=1}^n \sum_{j=1}^m \dfrac{ij}{\gcd(i,j)} \]

\[\sum_{i=1}^n \sum_{j=1}^m \sum_{d|i,d|j} [\gcd(\dfrac{i}{d},\dfrac{j}{d})=1]\dfrac{i\times j}{d} \]

\[\sum_{d=1}^n d \sum_{i=1}^{\lfloor \frac{n}{d} \rfloor}\sum_{j=1}^{\lfloor \frac{m}{d} \rfloor}[\gcd(i,j)=1]\times ij \]

\[\sum_{d=1}^n d \sum_{i=1}^{\lfloor \frac{n}{d} \rfloor}\sum_{j=1}^{\lfloor \frac{m}{d} \rfloor} ij \times \sum_{D|i,D|j}\mu(D)D \]

\[\sum_{d=1}^n d \sum_{D=1}^{\lfloor \frac{n}{d} \rfloor} \mu(D) \sum_{i=1}^{\lfloor \frac{n}{d} \rfloor}\sum_{j=1}^{\lfloor \frac{m}{d} \rfloor}ij[x|\gcd(i,j)] \]

\[\sum_{d=1}^n d \sum_{D=1}^{\lfloor \frac{n}{d} \rfloor} \mu(D) \sum_{kD=1}^{\lfloor \frac{n}{d} \rfloor}\sum_{lD=1}^{\lfloor \frac{m}{d} \rfloor}D^2kl \]

\[\sum_{d=1}^n d \sum_{D=1}^{\lfloor \frac{n}{d} \rfloor} \mu(D)D^2 \lfloor \dfrac{n}{D}\rfloor\lfloor \dfrac{m}{D}\rfloor \]

整除分块再套一个整除分块即可。

优化?对不起, 不会。

P4449 于神之怒加强版

求:

\[\sum_{i=1}^n \sum_{j=1}^m \gcd (i,j)^k \]

假设 \(n<m\)

\[\sum_{d=1}^n \sum_{i=1}^n \sum_{j=1}^m d^k \times [\gcd(i,j)=d] \]

\[\sum_{d=1}^n \sum_{i=1}^{\lfloor \frac{n}{d}\rfloor} \sum_{j=1}^{\lfloor \frac{m}{d} \rfloor} d^k\times [\gcd(i,j)=1] \]

\[\sum_{d=1}^n d^k\sum_{i=1}^{\lfloor\frac{n}{d} \rfloor} \sum_{j=1}^{\lfloor\frac{m}{d}\rfloor} \sum_{D|i,D|j}\mu(D) \]

\[\sum_{d=1}^n d^k\sum_{D=1}^{\lfloor \frac{n}{d}\rfloor} \mu(D)\sum_{i=1}^{\lfloor\frac{n}{dD}\rfloor} \sum_{j=1}^{\lfloor\frac{m}{dD}\rfloor}1 \]

\[\sum_{d=1}^n d^k\sum_{D=1}^{\lfloor \frac{n}{d} \rfloor} \mu(D)\lfloor \frac{n}{dD}\rfloor \lfloor \frac{m}{dD} \rfloor \]

\(dD=T\)

\[\sum_{d=1}^n d^k \sum_{D=1}^{\frac{n}{d}}\mu(D)\lfloor \frac{n}{T}\rfloor \lfloor \frac{m}{T} \rfloor \]

\[\sum_{d=1}^n \lfloor \frac{n}{T}\rfloor \lfloor \frac{m}{T} \rfloor \sum_{d|T}d^k\mu(\frac{T}{d}) \]

\(f(T)=\sum_{d|T}d^k\mu(\frac{T}{d})\),易证 \(f(T)\) 为积性函数,线性筛处理其前缀和即可。

P4917 天守阁的地板

求:

\[∏_{i=1}^N∏_{j=1}^N \dfrac{\operatorname{lcm}(i,j)}{\gcd(i,j)} \]

多组询问。

\[\prod_{i=1}^N\prod_{j-1}^N \dfrac{ij}{\gcd(i,j)^2} \]

\[\prod_{i=1}^N \prod_{j=1}^N ij \times \dfrac{1}{\gcd(i,j)^2} \]

\[\prod_{i=1}^N\prod_{j=1}^{N} ij \times \prod_{i=1}^N\prod_{j=1}^{N} \dfrac{1}{\gcd(i,j)^2} \]

左边一式显然等于 \((n!)^{2n}\)

考虑计算右边一式:

\[(\prod_{d=1}^N d^{\sum_{i=1}^N \sum_{j=1}^N[\gcd(i,j)=d]})^{-2} \]

可见指数是仪仗队,原式化为:

\[(n!)^{2n} \times (\prod_{d=1}^Nd^{2\times \sum_{i=1}^{\lfloor \frac{n}{d}\rfloor} \varphi(i)-1})^{-2} \]

\(\sum_{i=1}^{\lfloor \frac{n}{d} \rfloor}\varphi(i)\)\(n!\) 可以在线性筛 \(O(n)\) 中求得。因为 \(\lfloor \dfrac{n}{d}\rfloor \leq 2\sqrt n\),所以我们可以在这里进行优化,时间复杂度 \(O(T \sqrt n \log n)\)

P5221 Product

见 P4917。注意稍微优化一下空间。

P5176 公约数

求:

\[\displaystyle \sum_{i=1}^n \sum_{j=1}^m \sum_{k=1}^p \gcd(ij,ik,jk) \times \gcd(i,j,k) \times \lgroup \dfrac{\gcd(i,k) \times \gcd(j,k)}{\gcd(i,j)}+\dfrac{\gcd(i,j) \times \gcd(j,k)}{\gcd(i,k)} + \dfrac{\gcd(i,j) \times \gcd(i,k)}{\gcd(j,k)}\rgroup \]

式子很长,让人感到无从下手。实际上原题的式子就是下面的式子:

\[\displaystyle \sum_{i=1}^n \sum_{j=1}^m \sum_{k=1}^p \gcd(i,j)^2 + \gcd(i,k)^2 + \gcd(j,k)^2 \]

这个结论可以通过唯一分解定理展开得到。关键是这个式子怎么求。

我们发现这个长式子可以拆成三个小式子,因为 \(\gcd(i,j)\)\(k\)\(\gcd(i,k)\)\(j\)\(\gcd(j,k)\)\(i\) 都无关。于是原式可以化为:

\[\displaystyle p\times \sum_{i=1}^n \sum_{j=1}^m \gcd(i,j)^2 + m\times \sum_{i=1}^n \sum_{j=1}^p \gcd(i,j)^2 + n \times \sum_{i=1}^m \sum_{j=1}^p \gcd(i,j)^2 \]

暂时不管系数。我们发现这三个小式子是类似的。于是我们考虑计算 \(\displaystyle \sum_{i=1}^n \sum_{j=1}^m \gcd(i,j)^2\)

我们钦定 \(n<m\),接下来就化式子吧。

枚举 \(\gcd(i,j)\)

\[\displaystyle \sum_{d=1}^n \sum_{i=1}^n \sum_{j=1}^m [\gcd(i,j)=d] \times d^2 \]

\(d^2\) 提前,并且修改上界及 \([\ ]\) 里的内容:

\[\displaystyle \sum_{d=1}^{n} d^2\sum_{i=1}^{\lfloor \frac{n}{d} \rfloor} \sum_{j=1}^{\lfloor \frac{m}{d} \rfloor}[\gcd(i,j)=1] \]

已经出现了 \([\gcd(i,j)=1]\) 了。套用莫比乌斯反演的套路:

\[\displaystyle \sum_{d=1}^n d^2 \sum_{D=1}^{{\lfloor \frac{n}{d} \rfloor}}\mu(D) \lfloor \dfrac{n}{dD}\rfloor \lfloor \dfrac{m}{dD}\rfloor \]

\(dD\) 看起来太麻烦,令 \(dD=T\) 并进行枚举。

\[\displaystyle \sum_{d=1}^n \sum_{T=1}^n d^2\mu(T) \lfloor \dfrac{n}{T}\rfloor \lfloor \dfrac{m}{T}\rfloor \]

\[\displaystyle \sum_{T=1}^n \sum_{k|T}k^2\mu(\dfrac{T}{k}) \lfloor \dfrac{n}{T}\rfloor \lfloor \dfrac{m}{T}\rfloor \]

\(f(T) =\sum_{k|T}k^2 \mu(\dfrac{T}{k})\)

\[\displaystyle \sum_{T=1}^n f(T) \lfloor \dfrac{n}{T}\rfloor \lfloor \dfrac{m}{T}\rfloor \]

我们发现 \(f(x)\) 是一个积性函数。可以线性筛出处理。剩下的部分整除分块即可。


对于 \(f(x)\) 的处理

如果 \(x\) 为质数,此时 \(x\) 唯有 \(1,x\) 两个因子,\(\displaystyle f(x)=x^2\times \mu(\dfrac{x}{x}=1)+1^2 \times \mu(\dfrac{x}{1}=x)=x^2-1\)

否则,在线性筛中处理 \(f(i \times \operatorname{prime}_j)\)

\[f(i \times \operatorname{prime}_j)= \begin{cases} f(i) \times {\operatorname{prime}_j}^2 \ \ \ \ \ \operatorname{prime}_j|i\\\\ f(i) \times f(\operatorname{prime}_j)\ \operatorname{otherwise} \end{cases}\]

P3704 [SDOI2017]数字表格

求:

\[\displaystyle \prod_{i=1}^n \prod_{j=1}^m f_{\gcd(i,j)} \]

其中 \(f_x=f_{x-1}+f_{x-2}\)\(f_0=0\)\(f_1=1\)。(即斐波那契数列)

\(n<m\)

枚举 \(\gcd\)

\[\displaystyle \prod_{d=1}^n \prod_{i=1}^n \prod_{j=1}^m [\gcd(i,j)=d]f_{d} \]

\[\displaystyle \prod_{d=1}^n f_d^{\sum_{i=1}^{\lfloor \frac{n}{d} \rfloor} \sum_{j=1}^{\lfloor \frac{m}{d} \rfloor}[\gcd(i,j)=1]} \]

写太多太麻烦。直接化指数。

\[\displaystyle\sum_{i=1}^{\lfloor \frac{n}{d} \rfloor} \sum_{j=1}^{\lfloor \frac{m}{d} \rfloor}[\gcd(i,j)=1] \]

出现了 \([\gcd(i,j)=1]\),然后这又是一个很经典很经典的问题。

\[\displaystyle\sum_{D=1}^{\lfloor \frac{n}{d} \rfloor} \mu(D)\lfloor \dfrac{n}{dD}\rfloor \lfloor \dfrac{m}{dD} \rfloor \]

外层可以整除分块。内层一样。但并不能通过。我们需要一个时间复杂度更低的算法。

\(dD=T\)。枚举 \(T\)

\[\displaystyle \prod_{T=1}^n (\prod_{d|T} {f_d}^{\mu(\frac{T}{d})})^{\lfloor \frac{n}{T} \rfloor \lfloor \frac{m}{T} \rfloor} \]

\(\displaystyle h(T)=\prod_{d|T} {f_d}^{\mu(\frac{T}{d})}\)

\[\displaystyle \prod_{T=1}^n h(T)^{\lfloor \frac{n}{T} \rfloor \lfloor \frac{m}{T} \rfloor} \]

然后在线性筛中预处理 \(h\) 函数,时间复杂度 \(O(\sum_{i=1}^n \lfloor \dfrac{n}{i} \rfloor) \approx O(n \log \log n)\)

总时间复杂度:\(O(n \log \log n+T\sqrt n)\)

posted @ 2020-07-24 16:17  SyadouHayami  阅读(210)  评论(0编辑  收藏  举报

My Castle Town.