51nod 1228 序列求和(伯努利數

2022-08-11 04:36:09 字數 1131 閱讀 2539

1228 序列求和

基準時間限制:3 秒 空間限制:131072 kb 分值: 160 難度:6級演算法題

收藏關注t(n) = n^k,s(n) = t(1) + t(2) + ...... t(n)。給出n和k,求s(n)。

例如k = 2,n = 5,s(n) = 1^2 + 2^2 + 3^2 + 4^2 + 5^2 = 55。

由於結果很大,輸出s(n) mod 1000000007的結果即可。

input

第1行:乙個數t,表示後面用作輸入測試的數的數量。(1 <= t <= 5000)

第2 - t + 1行:每行2個數,n, k中間用空格分割。(1 <= n <= 10^18, 1 <= k <= 2000)

output

共t行,對應s(n) mod 1000000007的結果。
input示例

3

5 34 2

4 1

output示例

int b[2005];//伯努利數

void init()//伯努利數打表

inv[1]=1;

for (int i=2;i<2001;i++) inv[i]=(ll)inv[mod % i] * (mod-mod/i) % mod;

for (int i=1;i<2001;i++)

ans=(ll)ans*inv[k+1] % mod;

cout

}

51nod1228 序列求和 (伯努利數)

1228 序列求和 hackerrank 基準時間限制 3 秒 空間限制 131072 kb 分值 160 難度 6級演算法題 t n n k,s n t 1 t 2 t n 給出n和k,求s n 例如k 2,n 5,s n 1 2 2 2 3 2 4 2 5 2 55。由於結果很大,輸出s n m...

51nod1228 序列求和

設t n n k,s n n i 1t i 給出n和k,求s n 例如k 2,n 5,s n 1 2 2 2 3 2 4 2 5 2 55。由於結果很大,輸出s n mod 1000000007的結果即可。t 5000 k 2000 n 10 18 n很大,所以複雜度不應該帶n 關於求自然數冪和,這...

51nod 1228 序列求和

t n n k,s n t 1 t 2 t n 給出n和k,求s n 例如k 2,n 5,s n 1 2 2 2 3 2 4 2 5 2 55。由於結果很大,輸出s n mod 1000000007的結果即可。input 第1行 乙個數t,表示後面用作輸入測試的數的數量。1 t 5000 第2 t ...