zoukankan      html  css  js  c++  java
  • 莫比乌斯反演题目选做

    置顶公式:

    \[\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)\)

  • 相关阅读:
    django xadmin后台集成DjangoUeditor
    vm虚拟机下的ubuntu16.04配置静态ip(NAT方式)
    关于mysql里的concat
    xml转换为数组格式
    关于json的中文转码问题
    判断是否是微信浏览器
    数组和xml的互相转换的封装函数
    关于微信登录的接口开发
    curl的封装类
    php里关于文件下载的方法(两种)
  • 原文地址:https://www.cnblogs.com/amagaisite/p/13372585.html
Copyright © 2011-2022 走看看