题目:http://vjudge.net/problem/LightOJ-1132
做快速幂专题做到的题
题意:给定n、k,求自然数的k次幂的和,结果对2^32取模。
分析:
令S(n)=1^k+2^k+…+n^k
有两种做法,看到n^k,想到xiongmao之前说的沈阳的题,通项里有i^4,两题构造方式一样。
由二项式定理,(n+1)^k展开C(k,0)*n^k+C(k,1)*n^(k-1)+…+C(k,k)*n^0,可知(n+1)^k能由
n^k,n^(k-1)…,n^0推出,那么列数为1的矩阵就是 ⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜nknk−1nk−2...n0S(n−1)⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟ 我们就可以构造一个(k+2)*(k+2)的矩阵 ⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜C(k,0)00...0C(k,0)C(k,1)C(k−1,0)0...0C(k,1)......C(k−2,0).........C(k,k)C(k−1,k−1)C(k−2,k−2)...C(0,0)C(k,k)000...00⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟ , 组合数可以打表预处理。
第二种
//前置技能:伯努利数(https://zh.wikipedia.org/wiki/%E4%BC%AF%E5%8A%AA%E5%88%A9%E6%95%B0)***逆元不可求 //待证
// B0=1,且C0n+1∗B0+C1n+1∗B1+...Cnn+1∗Bn=0 ;
//那么, Bn=−1n+1∗∑n−1i=0Cin+1∗Bi
// S(n)=1k+1∗∑k+1i=1Cik+1∗Bk+1−i∗(n+1)i
//可以预处理逆元
mod为2^32 不是素数 预处理不可求逆元 伯努利数似乎不可行