题解 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)$。

posted @ 2022-11-10 07:40  Terac  阅读(9)  评论(0)    收藏  举报  来源