51Nod 1228 伯努利数

来源:互联网 发布:淘宝图片签署协议在哪 编辑:程序博客网 时间:2024/05/16 15:19

51Nod 1228 伯努利数

题目链接:

点击打开链接

题意:

S(k,n)=1^k+2^k+...+n^k
求自然数幂和对1e9+7取模。
限制:
1<= n <= 10^18; 1 <= k <= 2000
思路:
伯努利数
S(k,n)=S(k,n)=1/(k+1) * ( C(k+1,k)*B[k]*(n+1)^1 + C(k+1,k-1)*B[k-1]*(n+1)^2 + ... + C(k+1,0)*B[0]*(n+1)^(k+1) )(B[i]为伯努利数)
而B[n]有:
B[n]=-1/(n+1) * ( C(n+1,0)*B[0] + C(n+1,1)*B[1] + ... + C(n+1,n-1)*B[n-1] )

所以B[0]...B[k]可以O(k^2)预处理出来,然后对于每个S(k,n)可以O(k)算出来。


0 0
原创粉丝点击