NOIP 前三天,感觉绝对复习不完了的 gtm1514 认为已经没有什么好害怕的了,于是做起了数学题。
因为摆了大烂所以只有一道。
P4464 [国家集训队] JZPKIL
题意不再赘述。下午看见这题,跟 joke3579 说想稍微休息一下,不整什么花活了,搞点数学。于是就有了这个。
那一点一点拆吧。我不演了我就是想敲点数学式子。
\[\begin{aligned} &\sum_{i=1}^n\gcd(i,n)^x\text{lcm}(i,n)^y\\ =&\sum_{i=1}^n\gcd(i,n)^x\frac{(in)^y}{\gcd(i,n)^y}\\ =&n^y\sum_{i=1}^n\gcd(i,n)^{x-y}i^y\\ =&n^y\sum_{d|n}d^{x-y}\sum_{i=1}^ni^y[\gcd(i,n)=d]\\ =&n^y\sum_{d|n}d^{x-y}\sum_{i=1}^{\frac nd}(id)^y[\gcd(i,\frac nd)=1]\\ =&n^y\sum_{d|n}d^x\sum_{i=1}^{\frac nd}i^y[\gcd(i,\frac nd)=1]\\ =&n^y\sum_{d|n}d^x\sum_{i=1}^{\frac nd}i^y\sum_{e|\gcd(i,\frac nd)}\mu(e)\\ =&n^y\sum_{d|n}d^x\sum_{e|\frac nd}\mu(e)\sum_{i=1}^{\frac nd}(ie)^y\\ =&n^y\sum_{d|n}d^x\sum_{e|\frac nd}\mu(e)e^y\sum_{i=1}^{\frac nd}i^y\\ \end{aligned} \]等幂求和,拉格朗日插值或者伯努利数。想想发现拉插太麻烦不想搞,于是上伯努利数。简记第 \(i\) 项伯努利数为 \(B_i\)。
\[\begin{aligned} &n^y\sum_{d|n}d^x\sum_{e|\frac nd}\mu(e)e^y\sum_{i=1}^{\frac nd}i^y\\ =&n^y\sum_{d|n}d^x\sum_{e|\frac nd}\mu(e)e^y\sum_{i=0}^y\binom{y+1}iB_i\left(\frac n{ed}\right)^{y+1-i}\\ =&\frac{n^y}{y+1}\sum_{i=0}^y\binom{y+1}iB_i\sum_{d|n}d^x\sum_{e|\frac nd}\mu(e)e^y\left(\frac n{ed}\right)^{y+1-i} \end{aligned} \]到这我陷入了沉思。所以吃饭之前先把上面的打出来,吃完饭再说下面的。
好了推完了。
前面一堆东西由于 \(y\le 3000\) 可以直接暴力。考虑后面一堆
\[f(n)=\sum_{d|n}d^x\sum_{e|\frac nd}\mu(e)e^y\left(\frac n{ed}\right)^{y+1-i} \]先看后面。
\[g(n)=\sum_{d|n}\mu(d)d^y\left(\frac nd\right)^{y+1-i} \]这玩意显然是个积性的。所以 \(f\) 也是积性的。当然筛是不可能筛的,因为 \(n\) 是 \(10^{18}\)。
考虑 \(f(p^k)\) 的取值:
\[f(p^k)=\sum_{a=0}^kp^{xa}\sum_{b=0}^{k-a}\mu(p^b)p^{yb}(p^{k-a-b})^{y+1-i} \]这个 \(\mu\) 里面一大堆素数幂没啥子用,只需要考虑 \(b=0,1\) 的取值,也就是
\[f(p^k)=\sum_{j=0}^kp^{xj}\left((p^{k-j})^{y+1-i}-p^y(p^{k-j-1})^{y+1-i}\right) \]然后可以预处理伯努利数,PR 暴力分解 \(n\)。
感觉这一大堆指数看上去就很容易写挂,而且翻了一圈题解发现好像卡常。先去写写,卡不动了再去贺一份实现。
算了懒得写了先把博客发出去,NOIP 以后有空再写。
标签:right,frac,gcd,题解,sum,P4464,nd,mu,国家集训队 From: https://www.cnblogs.com/gtm1514/p/16919554.html