题目大意:
求
\[\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}gcd(i,j)^k\]
首先很套路地推出
\[ret=\sum\limits_{T=1}^{n}\lfloor\frac{n}{T}\rfloor\lfloor\frac{m}{T}\rfloor\sum\limits_{t|T}t^k\mu(\frac{T}{t})\]
然后我们发现,前面直接除法分块就好了,关键是后面怎么办
我们设
\[f(T)=\sum\limits_{t|T}t^k\mu(\frac{T}{t})\]
很容易发现,它是一个积性函数可以线性筛,关键在于处理\(prime|i\)的情况
考虑莫比乌斯函数性质:对于\(T\)的某个质因子\(p\)的最高次\(p^x\),有贡献的部分其实只有当\(t=p^x\)和\(t=p^{x-1}\)时,因为其他情况下\(\mu\)的值都为\(0\)
所以质因子\(p\)对答案的贡献是\((p^{kx}-p^{k*(x-1)})*others\)
提出\(p^{k*(x-1)}\)得到\((p^k-1)*p^{k*(x-1)}*others\)
类比推出对于\(p\)最高次为\(p^{x-1}\)的某个数字,其贡献为\((p^k-1)*p^{k*(x-2)}*others\)
所以得出:当\(prime|i\)时,\(f(i*prime)=f(i)*prime^k\)
然后就可以线性筛预处理,除法分块回答啦(???)
原文地址:https://www.cnblogs.com/knife-rose/p/12020247.html
时间: 2024-10-11 11:11:26