题解 JZPKIL

题意:求\(\sum_{i=1}^n\ gcd(i,n)^x\ lcm(i,n)^y\)

\(lcm\)不好搞把它拆开,令\(gcd(i,n)=d\)转化为下式:

\(n^y\ \sum_{i=1}^n\ d^{x-y}\ i^y\)

那么\(n^y\)就是常数可以暂时不管,考虑枚举\(d\)转化为下式:

\(\sum_{d|n} d^x \sum_{i=1}^{\frac{n}{d}}\ i^y\ [gcd(i,\frac{n}{d})==1]\)

令\(\frac{n}{d}=m\),一步反演得到:

\(\sum_{d|n}d^x \sum_{i=1}^m i^y \sum_{k|gcd(i,m)}\mu (k)\)

交换枚举顺序得到:

\(\sum_{d|n}d^x \sum_{k|m} \mu (k) \sum_{k|i}^m i^y\)

然后把\(k\)提出:

\(\sum_{d|n}d^x \sum_{k|m} \mu(k) k^y \sum_{i=1}^{\lfloor \frac{m}{d} \rfloor} i^y\)

前面提式子都把\(n^y\)暂时忽略掉了,现在加上,于是最终的答案式子为:

\(\color{red}{n^y \sum_{d|n}d^x \sum_{k|m} \mu(k) k^y \sum_{i=1}^{\frac{m}{d}} i^y}\)

首先自然数的\(k\)次幂和是\(k+1\)次多项式,而多项式的每一项都是积性函数,所以答案式子可以看成积性函数的卷积。然后考虑怎么处理\(\sum a^b\),斯特林数,拉格朗日插值,伯努利数均可。讲一下伯努利数的方法。

伯努利数公式是这样的(\(B_i\)表示第\(i\)个伯努利数):

\(\sum_{i=1}^n i^k =\frac{1}{k+1} \sum_{j=0}^k BjC_{k+1}^j n^{k-j+1}\)

然后我们把前面的提出来看成多项式系数,假设系数为\(a_i\),于是答案式子可以进一步化成:

\(\color{red}{n^y \sum_{d|n}d^x \sum_{k|m} \mu(k) k^y \sum_{i=0}^{y}a_i (\frac{m}{d})^{y-i+1}}\)

由于这是积性函数可以把\(n\)唯一分解然后对于每个质因子进行计算,由莫比乌斯函数的性质易得知只有\(k=1,k=p_i\)的时候式子才不为\(0\),其中\(p_i\)表示\(n\)的第\(i\)个质因子,把\(n\)唯一分解然后代回去算就行了。

posted @ 2020-03-05 20:20  kylin_xy  阅读(203)  评论(0编辑  收藏  举报