[GDKOI2016]小学生数学题

[GDKOI2016]小学生数学题

[GDKOI2016]小学生数学题

题意:给定n、p、k,求i=1n1i(mod pk)\sum_{i=1}^n \frac 1i(mod\ p^k)

思路:设f(n,k)=i=1n1i(mod pk)f(n,k)=\sum_{i=1}^n \frac 1i (mod\ p^k)
一个整数a关于模数p存在逆元的条件是a、p互质,因此需要分类讨论i是否能被p整除。
分成两部分,一部分能被p整除,另一部分不能被p整除,设为G(n,k)
G(n,k)=i=1p1j=0np11i+jp+i=nnp×pn1iG(n,k)=\sum_{i=1}^{p-1}\sum_{j=0}^{\lfloor \frac np\rfloor-1} \frac 1{i+jp}+\sum_{i=n-\lfloor \frac np \rfloor \times p}^n \frac 1i
主要化简左边部分,设为g(n,k)g(n,k)

对于 1i+jp\frac 1{i+jp}的化简,可以用牛顿二项式定理
(i+jp)1=l=0C1li1l(jp)l=l=0k1C1li1l(jp)l(i+jp)^{-1}=\sum_{l=0}^{\infty} C_{-1}^l i^{-1-l}{(jp)}^l=\sum_{l=0}^{k-1} C_{-1}^l i^{-1-l}{(jp)}^l
在模 pkp^k 的情况下,只需要处理到 k1k-1 就可以了,后面的都是整除的。
g(n,k)=i=1p1j=0np1l=0k11li1l(jp)lg(n,k)=\sum_{i=1}^{p-1}\sum_{j=0}^{\lfloor \frac np\rfloor-1} \sum_{l=0}^{k-1} -1^l i^{-1-l}{(jp)}^l
g(n,k)=i=1p1l=0k11lplil+1j=0np1jlg(n,k)=\sum_{i=1}^{p-1} \sum_{l=0}^{k-1}-1^l \frac {p^l}{i^{l+1}} \sum_{j=0}^{\lfloor \frac np\rfloor-1}j^l

因此G(n,k)=i=1p1l=0k11lplil+1j=0np1jl+i=nnp×pn1iG(n,k)=\sum_{i=1}^{p-1} \sum_{l=0}^{k-1}-1^l \frac {p^l}{i^{l+1}} \sum_{j=0}^{\lfloor \frac np\rfloor-1}j^l+\sum_{i=n-\lfloor \frac np \rfloor \times p}^n \frac 1i

F(n,k)=i=1np1ip+G(n,k)F(n,k)=\sum_{i=1}^{\lfloor \frac np \rfloor} \frac 1{ip}+G(n,k)

提取p化简:
F(n,k)=1pi=1np1i+G(n,k)F(n,k)=\frac 1p\sum_{i=1}^{\lfloor \frac np \rfloor} \frac 1{i}+G(n,k)

注意这里是模p^k意义下的,不能直接就等价于F(np,k)F(\lfloor \frac np \rfloor,k)

a mod b=apmod  bppa\ mod\ b =\frac {ap \mod bp}p

因此 F(n,k)=F(np,k+1)+G(n,k)F(n,k)=F(\lfloor \frac np \rfloor,k+1)+G(n,k)