SHOI2015 超能粒子炮 改

2022-03-16 23:58:08 字數 934 閱讀 6572

求\(\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_^\)具體來說,將這部分相同的部分放到一起,剩下的地方直接計算

相同的部分,後半部分可以遞迴計算:$$(\sum_})\times \sum_}$$

剩下的部分,組合數用盧卡斯定理計算:$$(\sum_}) \times c_=s_\times c_^$$

預處理出\(c\)和\(s\)即可遞迴計算,感覺有些邊界問題,然而資料水都能過qwq

(嘴上解釋不清楚,但是自己推起來很簡單的)

#include#define min(x,y) ((x)<(y)?(x):(y))

#define max(x,y) ((x)>(y)?(x):(y))

using namespace std;

typedef long long ll;

const ll mod = 2333;

int t;

ll n,k,c[2500][2500];

ll sum[2500][2500];//sigma(c(i,0~j))

ll jc[2500],inv[2500];

template void read(t &x)

void init()

for(int i=0;i<=mod;++i) }

ll lucas(ll n,ll m)

ll solve(ll n,ll k)//sigma(c(n,0~k))

int main()

return 0;

}

SHOI2015 超能粒子炮 改

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

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