[GDKOI2016]小学生数学题
![[GDKOI2016]小学生数学题 [GDKOI2016]小学生数学题](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzUyMi9iYzcyY2IyNmEwYWE2MzIxNzYzYzc1MDVkMjU2NjgwMi5wbmc=)
题意:给定n、p、k,求∑i=1ni1(mod pk)
思路:设f(n,k)=∑i=1ni1(mod pk)
一个整数a关于模数p存在逆元的条件是a、p互质,因此需要分类讨论i是否能被p整除。
分成两部分,一部分能被p整除,另一部分不能被p整除,设为G(n,k)
G(n,k)=i=1∑p−1j=0∑⌊pn⌋−1i+jp1+i=n−⌊pn⌋×p∑ni1
主要化简左边部分,设为g(n,k)
对于 i+jp1的化简,可以用牛顿二项式定理
(i+jp)−1=∑l=0∞C−1li−1−l(jp)l=∑l=0k−1C−1li−1−l(jp)l
在模 pk 的情况下,只需要处理到 k−1 就可以了,后面的都是整除的。
g(n,k)=i=1∑p−1j=0∑⌊pn⌋−1l=0∑k−1−1li−1−l(jp)l
g(n,k)=i=1∑p−1l=0∑k−1−1lil+1plj=0∑⌊pn⌋−1jl
因此G(n,k)=i=1∑p−1l=0∑k−1−1lil+1plj=0∑⌊pn⌋−1jl+i=n−⌊pn⌋×p∑ni1
而F(n,k)=i=1∑⌊pn⌋ip1+G(n,k)
提取p化简:
F(n,k)=p1i=1∑⌊pn⌋i1+G(n,k)
注意这里是模p^k意义下的,不能直接就等价于F(⌊pn⌋,k)
a mod b=papmodbp
因此 F(n,k)=F(⌊pn⌋,k+1)+G(n,k)