置顶公式:
\[\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)\)。