求\(\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...