求 ∑ni=1ik
(1<=k<=2000)
模数为大于n的质数。
这个东西可以证明k次的自然数幂和一定是个k+1次的多项式,对拉格朗日插值法有点帮助。
二次项展开:
(n+1)k−nk
=∑k−1i=0Cik∗ni
∑ni=1((i+1)k−ik)=(n+1)k−1
=∑ni=1∑k−1j=0Cjk∗ij
=∑k−1i=0Cjk∗∑nj=1ji
设 s(j)=∑ni=1ij ,那么:
=∑k−1i=0Cjk∗s(i)
=∑k−2i=0Cjk∗s(i)+k∗s(k−1)
得方程:
∑k−2i=0Cjk∗s(i)+k∗s(k−1)=(n+1)k−1
移项得:
s(k−1)=(n+1)k−1−∑k−2i=0Cik∗s(i)k
整理得:
s(k)=(n+1)k+1−1−∑k−1i=0Cik+1∗s(i)k+1
组合数可以杨辉三角预处理。
除以k+1就必须要逆元了,所以模数必须是质数。