51nod 1229 序列求和 V2

2021-09-24 23:46:01 字數 1057 閱讀 2979

題解:需要先推遞推公式,發現遞推後,直接o(k^2)暴力找就行,注意當r=1的時候,分母為0,需要特判,使用fold篩處理。

題目鏈結

#includeusing namespace std;

typedef long long int ll;

const int maxn = 2e3 + 10;

const ll mod = 1e9 + 7;

ll s[maxn], rr[maxn];

ll fac[maxn], inv[maxn];

ll pow(ll a, ll p, ll mod) //p=(mod-2)用來求逆元

a = (a*a) % mod;

p >>= 1;

} return ans;

}ll c(int n, int m)

void init()

}//fold篩

int pv[maxn]; //前幾項, 前面無效值用0佔位

int st = 1, ed = maxn; //使用上面陣列下標為[st,ed]的資料

ll fac_1[maxn + 5], inv_1[maxn + 5], facinv[maxn + 5];

ll pre[maxn + 5], saf[maxn + 5];

void init_fold()

}ll cal(ll x0)

ll res = 0;

for (int i = 0; i <= n; ++i)

return res;

}int main()

s[i] = (s[i] * inv_ + mod) % mod;

}cout << s[k] << endl;

} else//當r等於1的時候,因為分母不能為0,所以需要特殊計算,使用fold即可

ed = k + 2;

init_fold();

cout << cal(n) << endl;

} }return 0;

}

51nod 1822 序列求和 V5

我是zz吧 nonprime i prime j 0 還以為是要卡常,卡了半天就是過不掉 我們來說這道題 首先,我們考慮乙個 k 2 做法 f n sum i r r 1 f n sum i r sum i r r 1 f n n r sum i 1 i r r 1 f n n r sum sum ...

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 ...