BZOJ4591 Shoi2015 超能粒子炮

2022-05-03 16:39:08 字數 738 閱讀 4566

傳送門​  記\(a=\lfloor\frac n p\rfloor\),\(b=n\%p\)。我們嘗試使用lucas定理展開這些組合數,尋找公共部分。以下除法都作整數下取整除法:

\[\begin

f(n,k)&=\sum_^kc_n^i\mod p\\

&=\sum_^c_^*c_^+\sum_^c_^*c_^\\

&=(\sum_^c_^i*\sum_^c_^j)+c_^*\sum_^bc_^i\\

&=f(n/p,a-1)*f(n\%p,p-1)+c_^f(n\%p,k\%p)

\end

\]所以只需要預處理\(f(0...p-1,0...p-1)\)的值就可以直接計算了。

注意判斷k<0的情況,此時\(f\)為0。

#include using namespace std;

typedef long long ll;

const int mod=2333,n=2351;

int c[n][n],f[n][n];

inline int plus(int x,int y)

inline int mul(int x,int y)

inline int c(ll n,ll m)

int solve(ll n,ll k)

void init()

for(int i=0;i}int main()

return 0;

}

4591 Shoi2015 超能粒子炮 改

time limit 10 sec memory limit 256 mb submit 591 solved 218 submit status discuss 曾經發明了腦洞 儀 超能粒子炮的發明家shtsc又公開了他的新發明 超能粒子炮 改 一種可以發射威力更加 強大的粒子流的神秘裝置。超能粒...

Bzoj3562 神器化合物 Shoi 2014

ac通道 分析 若把每乙個原子看作乙個節點,將化學鍵看作一條邊,那麼這個題目要求的 分子的個數 很容易就可以看出是求圖中聯通塊的個數。求聯通塊的個數,可以使用並查集。可如何求出每一步的聯通塊的個數呢?可以知道,當連上一條邊時,若此邊連線的是兩個不同的聯通塊,那麼分子個數就會減一 當刪去一條邊時,若刪...

BZOJ 3566 SHOI2014 概率充電器

題目 題意 給定樹形結構的n個元件,每個元件有一定概率自己充電,還有一定概率通過某條邊給其他元件充電,求充電的元件期望個數。n 500000 題解 樹形結構肯定能想到樹形dp,全樹對某點產生的貢獻一般可以通過一到兩遍樹形dp計算得出,本題所求期望等於每個元件被充電的概率之和。設f i 表示i被充電的...