SHOI2015 超能粒子炮 改

2022-03-03 16:38:36 字數 789 閱讀 6457

設\(f[n][k]=\sum_^kc_n^i\pmod \)

那麼根據盧卡斯定理我們知道\(f[n][k]=\sum_^kc_^\times c_^\)

\(=c_^0\times \sum_^c_^i+c_^1\times \sum_^c_^i+...+c_^\times \sum_^c_^i+c_^\times \sum_^c_^i\)

\(=\sum_^c_^i\times(c_^0+c_^1+...+c_^)+\sum_^c_^i\)

\(=\sum_^c_^i\times \sum_^c_^j+\sum_^c_^i\)

\(=f[n\%p][p-1]\times f[n/p][k/p-1]+c_^\times f[n\%p][k\%p]\)

取模的那些我們可以先預處理出來(小於等於2333),然後除法操作的那些我們遞迴計算即可。

**如下:

#include#include#include#include#include#define ll long long

#define p 2333

using namespace std;

int t;

ll n,k;

ll c[2500][2500],f[2500][2500];

inline void init()

inline ll lucas(ll down,ll up)

inline ll f(ll down,ll up)

int main()

return 0;

}

SHOI2015 超能粒子炮 改

求 sum 2333 n,k leq 10 如果直接套盧卡斯還是比較容易想到分塊求解的 由 c n i c times c 可知,i p 相同的組合數另一部分分別是 i p,i p 1,i p 2.這部分可以搓到一起 令 s n k sum 具體來說,將這部分相同的部分放到一起,剩下的地方直接計算 ...

SHOI2015 超能粒子炮 改

首先我們要明確題目要我們求的是這個式子 sum kc n i 我們先從部分分看起 預處理出組合數暴力算就是了。複雜度 o n 2 由於我們要求的東西是在楊輝三角的一行,所以我們可以遞推求出改行組合數,遞推式為 c n c n m frac 證明的話就用組合數的定義式即可。複雜度 o k 這一檔對正解...

SHOI2015 超能粒子炮 改

給你 t 組詢問,每組詢問給定引數 n,k 計算 sum limits k dbinom bmod 2333 t leq10 5,n,k leq10 這題其實是 operatorname 定理的乙個簡單擴充套件。方便起見,令 p 2333 首先利用 operatorname 定理化簡所求和式,由 d...