洛谷 P1390 公约数的和
题目简述
求
\[\sum_{i=1}^n\sum_{j=i+1}^n\gcd(i,j)
\]
推导过程
\[\begin{align*}
&\sum_{i=1}^n\sum_{j=i+1}^n\gcd(i,j) \\
=\space&\frac{1}{2}\cdot\sum_{i=1}^n\sum_{j=1}^n\gcd(i,j)-\sum_{i=1}^n\gcd(i,i) \\
=\space&\frac{1}{2}\left(\sum_{i=1}^n\sum_{j=1}^n\gcd(i,j)-\sum_{i=1}^ni\right) \\
=\space&\frac{1}{2}\cdot\sum_{i=1}^n\sum_{j=1}^n\gcd(i,j)-\frac{n(n+1)}{4}
\end{align*}
\]
\[\begin{align*}
&\sum_{i=1}^n\sum_{j=1}^n\gcd(i,j) \\
=&\sum\limits_{i=1}^n\sum\limits_{j=1}^n\sum\limits_{d=1}^n\bigl[\gcd(i,j)=d\bigr]\cdot d \\
=&\sum\limits_{d=1}^nd\cdot\sum\limits_{i=1}^n\sum\limits_{j=1}^n\bigl[\gcd(i,j)=d\bigr] \\
=&\sum\limits_{d=1}^nd\cdot\sum\limits_{i=1}^{\lfloor n/d\rfloor}\sum\limits_{j=1}^{\lfloor n/d\rfloor}\bigl[\gcd(di,dj)=d\bigr] \\
=&\sum\limits_{d=1}^nd\cdot\sum\limits_{i=1}^{\lfloor n/d\rfloor}\sum\limits_{j=1}^{\lfloor n/d\rfloor}[\gcd(i,j)=1] \\
=&\sum\limits_{d=1}^nd\cdot\sum\limits_{i=1}^{\lfloor n/d\rfloor}\sum\limits_{j=1}^{\lfloor n/d\rfloor}\sum\limits_{x|i,\,x|j}\mu(x) \\
=&\sum\limits_{d=1}^nd\cdot\sum\limits_{x=1}^{\lfloor n/d\rfloor}\sum\limits_{i=1}^{\lfloor\frac{n}{dx}\rfloor}\sum\limits_{j=1}^{\lfloor\frac{n}{dx}\rfloor}\mu(x) \\
=&\sum\limits_{d=1}^nd\cdot\sum\limits_{x=1}^{\lfloor n/d\rfloor}\left(\mu(x)\cdot\sum\limits_{i=1}^{\lfloor\frac{n}{dx}\rfloor}\sum\limits_{j=1}^{\lfloor\frac{n}{dx}\rfloor}1\right) \\
=&\sum\limits_{d=1}^nd\cdot\sum\limits_{x=1}^{\lfloor n/d\rfloor}\left(\mu(x)\cdot\left\lfloor\frac{n}{dx}\right\rfloor^2\right)
\end{align*}
\]
设 \(T=dx\),则 \(x=\frac{T}{d}\),
\[\begin{align*}
&\sum\limits_{d=1}^nd\cdot\sum\limits_{x=1}^{\lfloor n/d\rfloor}\left(\mu(x)\cdot\left(\left\lfloor\frac{n}{dx}\right\rfloor\right)^2\right) \\
=&\sum\limits_{T=1}^n\sum\limits_{d|T}d\cdot\mu\!\left(\frac{T}{d}\right)\cdot\left\lfloor\frac{n}{T}\right\rfloor^2 \\
=&\sum\limits_{T=1}^n\left\lfloor\frac{n}{T}\right\rfloor^2\cdot\left(\sum_{d|T}d\cdot\mu\!\left(\frac{T}{d}\right)\right)
\end{align*}
\]
设
\[f(T)=\sum_{d|T}d\cdot\mu\!\left(\frac{T}{d}\right)
\]
则根据 \(\text{Dirichlet}\) 卷积的定义,\(f=\text{id}*\mu=\varphi\).
故
\[\begin{align*}
&\sum\limits_{T=1}^n\left\lfloor\frac{n}{T}\right\rfloor^2\cdot\left(\sum_{d|T}d\cdot\mu\!\left(\frac{T}{d}\right)\right) \\
=&\sum\limits_{T=1}^n\left\lfloor\frac{n}{T}\right\rfloor^2\cdot\varphi(T)
\end{align*}
\]
\[\begin{align*}
&\sum_{i=1}^n\sum_{j=i+1}^n\gcd(i,j) \\
=\space&\frac{1}{2}\cdot\sum_{i=1}^n\sum_{j=1}^n\gcd(i,j)-\frac{n(n+1)}{4} \\
=\space&\frac{1}{2}\left(\sum\limits_{T=1}^n\left\lfloor\frac{n}{T}\right\rfloor^2\cdot\varphi(T)\right)-\frac{n(n+1)}{4}
\end{align*}
\]
用欧拉筛线性计算出 \(\varphi\) 即可. 注意到 \(\frac{n}{T}\) 最多只有 \(\sqrt{n}\) 种取值,因此使用整除分块的技巧可以把单次询问优化为 \(O(\sqrt{n})\). 此题为单测,直接计算即可. 有一个细节是,虽然整个式子一定是整数,但是左右两个部分不一定都是整数,代码实现中可以把 \(\frac{1}{2}\) 提出来.
浙公网安备 33010602011771号