题解 P6156 简单题
题意
给定 $n,k$,求
$$\sum\limits_{i=1}^n\sum\limits_{j=1}^n(i+j)^k\mu^2(\gcd(i,j))\gcd(i,j)$$
数据范围:$1\le n\le 5\times 10^6,1\le k\le 10^{18}$
题解
$$\begin{aligned}\sum\limits_{i=1}^n\sum\limits_{j=1}^n(i+j)^k\mu^2(\gcd(i,j))\gcd(i,j)&=\sum\limits_{d=1}^n\mu^2(d)d^{k+1}\sum\limits_{i=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\sum\limits_{j=1}^{\left\lfloor\frac{n}{d}\right\rfloor}(i+j)^k\left[\gcd(i,j)=1\right]\\&=\sum\limits_{d=1}^n\mu^2(d)d^{k+1}\sum\limits_{i=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\sum\limits_{j=1}^{\left\lfloor\frac{n}{d}\right\rfloor}(i+j)^k\sum\limits_{s|i}\sum\limits_{s|j}\mu(s)\\&=\sum\limits_{d=1}^n\mu^2(d)d^{k+1}\sum\limits_{s=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\mu(s)s^k\sum\limits_{i=1}^{\left\lfloor\frac{n}{sd}\right\rfloor}\sum\limits_{j=1}^{\left\lfloor\frac{n}{sd}\right\rfloor}(i+j)^k\\&=\sum\limits_{q=1}^nq^k\sum\limits_{d|q}\mu^2(d)d\mu(\frac{q}{d})\sum\limits_{i=1}^{\left\lfloor\frac{n}{q}\right\rfloor}\sum\limits_{j=1}^{\left\lfloor\frac{n}{q}\right\rfloor}(i+j)^k\\&=\sum\limits_{q=1}^n\sum\limits_{i=1}^{\left\lfloor\frac{n}{q}\right\rfloor}\sum\limits_{j=1}^{\left\lfloor\frac{n}{q}\right\rfloor}(i+j)^kq^k\sum\limits_{d|q}\mu^2(d)d\mu(\frac{q}{d})\end{aligned}$$ 令 $S(n)=\sum\limits_{i=1}^n\sum\limits_{j=1}^n(i+j)^k,g(n)=n^k\sum\limits_{d|n}\mu^2(d)d\mu(\frac{n}{d})$
$$\begin{aligned}\sum\limits_{i=1}^n\sum\limits_{j=1}^n(i+j)^k\mu^2(\gcd(i,j))\gcd(i,j)&=\sum\limits_{q=1}^nS(\left\lfloor\frac{n}{q}\right\rfloor)g(q)\end{aligned}$$
对于 $g(n)$,线性筛出 $i^k$,$O(n\log n)$ 预处理即可。
考虑 $S(n)$ 怎么求,令 $f(n)=\sum\limits_{i=1}^ni^k$,所以 $S(n)=S(n-1)+(2n)^k+2\left[f(2n-1)-f(n+1)\right]$,直接推即可。
左边整除分块,右边直接 $O(n\log n)$ 暴力搞出来,时间复杂度 $O(n\log n)$。

浙公网安备 33010602011771号