首页 > 其他 > 详细

P6060 [加油武汉]传染病研究

时间:2020-05-21 21:06:06      阅读:60      评论:0      收藏:0      [点我收藏+]

题意

\(T\)组询问,每组给定\(n,k\),求\(\sum\limits_{i=1}^n \sigma_0(i^k)\)\(T\le 10^4\)\(n,k\le 10^7\)

做法一

\(m\)表示成\(m=\prod\limits_{i=1}^c p_i^{\alpha_i}\),则\(\sigma_0(m)=\prod\limits_{i=1}^c(\alpha_i+1)\),则\(\sigma_0(m^k)=\prod\limits_{i=1}^c (k\cdot \alpha_i+1)\)
\(\sigma(m^k)\)是个关于\(k\)\(c\)次多项式(\(c\le 8\)
可以线性筛出\(i\in[1,n]\)的多项式系数,再求前缀和

做法二

\(w(i)\)\(i\)的质因数个数
\(\sum\limits_{i=1}^n \sigma_0(i^k)=\sum\limits_{i=1}^n k^{w(i)}\frac{n}{i}\)

解释一下:
\(d=\prod\limits_{i=1}^c p_i^{\alpha_i}\)
将每个约数映射为\(g(d)=\prod\limits_{i=1}^c p_i^{\frac{\alpha_i}{k}}\)
\(g(d)|i\)等价于\(d|i^k\),对于给定的\(d\),可以找到\(\frac{n}{g(d)}\)个数字使得\(d|i^k\)
\(\sum\limits_{i=1}^n \sigma_0(i^k)=\sum\limits_{d=1}^{n^k}\frac{n}{g(d)}\)
枚举\(i=g(d)\),显然有\(k^{w(i)}\)\(d\)满足\(g(d)=i\)

P6060 [加油武汉]传染病研究

原文:https://www.cnblogs.com/Grice/p/12932852.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!