洛谷 P6156 简单题
题目简述
给出 \(n\),\(k\),求
\[\sum\limits_{i=1}^n\sum\limits_{j=1}^n(i+j)^kf(\gcd(i,j))\gcd(i,j)
\]
答案对 \(998244353\) 取模.
\(f\) 函数定义如下:
如果 \(k\) 有平方因子 \(f(k)=0\),否则 \(f(k)=1\)。
推导过程
“\(k\) 有平方因子” 和 “\(k\) 有质数的平方因子” 是等价的,因此
\[f(n)=\left[\forall\,p\in\mathbb{P},\;p^2\nmid n\right]
\]
可以注意到 \(f(n)=\mu(n)^2\).
以下是关于原式的推导:
\[\begin{align*}
&\sum\limits_{i=1}^n\sum\limits_{j=1}^n(i+j)^k\cdot f\!\left(\gcd(i,j)\right)\cdot\gcd(i,j) \\
=&\sum\limits_{i=1}^n\sum\limits_{j=1}^n(i+j)^k\cdot\mu\!\left(\gcd(i,j)\right)^2\cdot\gcd(i,j) \\
=&\sum\limits_{d=1}^n\sum\limits_{i=1}^n\sum\limits_{j=1}^n\left[\gcd(i,j)=d\right]\cdot(i+j)^k\cdot\mu(d)^2\cdot d \\
=&\sum\limits_{d=1}^n\sum\limits_{i=1}^{\lfloor n/d\rfloor}\sum\limits_{j=1}^{\lfloor n/d\rfloor}\left[\gcd(di,dj)=d\right]\cdot(di+dj)^k\cdot\mu(d)^2\cdot d \\
=&\sum\limits_{d=1}^n\sum\limits_{i=1}^{\lfloor n/d\rfloor}\sum\limits_{j=1}^{\lfloor n/d\rfloor}\left[\gcd(i,j)=1\right]\cdot d^k\cdot(i+j)^k\cdot\mu(d)^2\cdot d \\
=&\sum\limits_{d=1}^n\left(d^{k+1}\mu(d)^2\cdot\sum\limits_{i=1}^{\lfloor n/d\rfloor}\sum\limits_{j=1}^{\lfloor n/d\rfloor}\Bigl(\left[\gcd(i,j)=1\right]\cdot(i+j)^k\Bigr)\right) \\
=&\sum\limits_{d=1}^n\left(d^{k+1}\mu(d)^2\cdot\sum\limits_{i=1}^{\lfloor n/d\rfloor}\sum\limits_{j=1}^{\lfloor n/d\rfloor}\biggl((i+j)^k\cdot\sum\limits_{x|i,x|j}\mu(x)\biggr)\right) \\
=&\sum\limits_{d=1}^n\left(d^{k+1}\mu(d)^2\cdot\sum\limits_{x=1}^{\lfloor n/d\rfloor}\Biggl(\mu(x)\cdot\sum\limits_{i=1}^{\lfloor\frac{n}{dx}\rfloor}\sum\limits_{j=1}^{\lfloor\frac{n}{dx}\rfloor}(i\!\cdot\!x+j\!\cdot\!x)^k\Biggr)\right) \\
=&\sum\limits_{d=1}^n\left(d^{k+1}\mu(d)^2\cdot\sum\limits_{x=1}^{\lfloor n/d\rfloor}\Biggl(x^k\mu(x)\cdot\sum\limits_{i=1}^{\lfloor\frac{n}{dx}\rfloor}\sum\limits_{j=1}^{\lfloor\frac{n}{dx}\rfloor}(i+j)^k\Biggr)\right)
\end{align*}
\]
设 \(S(n)=\sum\limits_{i=1}^n\sum\limits_{j=1}^n(i+j)^k\),则
\[\begin{align*}
S(n)-S(n-1)&=\left(\sum\limits_{i=1}^n\sum\limits_{j=1}^n(i+j)^k\right)-\left(\sum\limits_{i=1}^{n-1}\sum\limits_{j=1}^{n-1}(i+j)^k\right) \\
&=\sum\limits_{\max\{i,j\}=n}(i+j)^k \\
&=2\cdot\sum\limits_{i=1}^n(i+n)^k-(n+n)^k \\
&=2\cdot\sum\limits_{i=n+1}^{2n}i^k-(2n)^k
\end{align*}
\]
\(S(1)=2^k\).
因为 \(f(x)=x^k\) 为完全积性函数,所以可以用欧拉筛预处理出 \(2n\) 以内所有数的 \(k\) 次方. 对于完全积性函数,只需要单独计算所有质数的 \(k\) 次方,其他部分都可以线性求出. 因此时间复杂度为 \(O(\frac{n}{\ln n}\cdot \log k)\). 对 \(f(x)=x^k\) 做一次前缀和,再对 \(S(n)-S(n-1)\) 做一次前缀和,就能预处理出所有 \(S(n)\).
\[\begin{align*}
&\sum\limits_{d=1}^n\left(d^{k+1}\mu(d)^2\cdot\sum\limits_{x=1}^{\lfloor n/d\rfloor}\Biggl(x^k\mu(x)\cdot\sum\limits_{i=1}^{\lfloor\frac{n}{dx}\rfloor}\sum\limits_{j=1}^{\lfloor\frac{n}{dx}\rfloor}(i+j)^k\Biggr)\right) \\
=&\sum\limits_{d=1}^n\left(d^{k+1}\mu(d)^2\cdot\sum\limits_{x=1}^{\lfloor n/d\rfloor}\biggl(x^k\cdot\mu(x)\cdot S\!\left(\left\lfloor\frac{n}{dx}\right\rfloor\right)\biggr)\right)
\end{align*}
\]
设 \(T=dx\),则 \(x=\frac{T}{d}\).
\[\begin{align*}
&\sum\limits_{d=1}^n\left(d^{k+1}\mu(d)^2\cdot\sum\limits_{x=1}^{\lfloor n/d\rfloor}\biggl(x^k\cdot\mu(x)\cdot S\!\left(\left\lfloor\frac{n}{dx}\right\rfloor\right)\biggr)\right) \\
=&\sum\limits_{T=1}^n\sum\limits_{d|T}d^{k+1}\cdot\mu(d)^2\cdot\left(\frac{T}{d}\right)^k\cdot\mu\!\left(\frac{T}{d}\right)\cdot S\!\left(\left\lfloor\frac{n}{T}\right\rfloor\right) \\
=&\sum\limits_{T=1}^n\left(T^k\cdot S\!\left(\left\lfloor\frac{n}{T}\right\rfloor\right)\cdot\sum\limits_{d|T}d\cdot\mu(d)^2\cdot\mu\!\left(\frac{T}{d}\right)\right)
\end{align*}
\]
设
\[F(T)=\sum\limits_{d|T}d\cdot\mu(d)^2\cdot\mu\!\left(\frac{T}{d}\right) \\
g(d)=d\cdot\mu(d)^2
\]
显然 \(g\) 是积性的,根据 \(\text{Dirichlet}\) 卷积的定义,\(F=g*\mu\),因此 \(F\) 也是积性的.
\(\forall\,p\in\mathbb{P},\,\alpha\in\mathbb{Z}\),
\[F(p^\alpha)=\sum_{i=0}^\alpha p^i\cdot\mu\!\left(p^i\right)^2\cdot\mu\!\left(p^{\alpha-i}\right)
\]
当 \(i\) 或 \(\alpha-i\) 不小于 \(2\) 时,\(\mu\!\left(p^i\right)\) 或 \(\mu\!\left(p^{\alpha-i}\right)\) 相应地为 \(0\),此时这一项为 \(0\). 而当 \(\alpha\geq3\) 时,\(i\) 和 \(\alpha-i\) 总有至少一个不小于 \(2\),此时 \(F\!\left(p^\alpha\right)=0\).
当 \(\alpha=1\) 时,
\[\begin{align*}
F(p)&=p^0\cdot\mu\!\left(p^0\right)^2\cdot\mu\!\left(p^1\right)+p^1\cdot\mu\!\left(p^1\right)^2\cdot\mu\!\left(p^0\right) \\
&=1\cdot1^2\cdot(-1)+p\cdot(-1)^2\cdot1 \\
&=p-1
\end{align*}
\]
当 \(\alpha=2\) 时,
\[\begin{align*}
F\!\left(p^2\right)&=p^0\cdot\mu\!\left(p^0\right)^2\cdot\mu\!\left(p^2\right)+p^1\cdot\mu\!\left(p^1\right)^2\cdot\mu\!\left(p^1\right)+p^2\cdot\mu\!\left(p^2\right)^2\cdot\mu\!\left(p^0\right) \\
&=0+p\cdot(-1)^2\cdot(-1)+0 \\
&=-p
\end{align*}
\]
于是我们得到了质数幂处 \(F\!\left(p^\alpha\right)\) 的值,因为 \(F\) 是积性的,所以可以用欧拉筛线性求出 \(F(x)\).
\[\begin{align*}
&\sum\limits_{T=1}^n\left(T^k\cdot S\!\left(\left\lfloor\frac{n}{T}\right\rfloor\right)\cdot\sum\limits_{d|T}d\cdot\mu(d)^2\cdot\mu\!\left(\frac{T}{d}\right)\right) \\
=&\sum\limits_{T=1}^nT^k\cdot F(T)\cdot S\!\left(\left\lfloor\frac{n}{T}\right\rfloor\right)
\end{align*}
\]
于是可以线性求出答案. 注意到 \(\left\lfloor\frac{n}{T}\right\rfloor\) 最多只有 \(\sqrt{n}\) 种取值,于是可以用前缀和预处理 \(T^k\cdot F(T)\),再用整除分块的技巧以 \(O(\sqrt{n})\) 的时间复杂度回答单次询问,其中 \(n\) 是变量,\(k\) 是常量.