Color西安邀請賽 二項式反演

2021-09-27 19:27:28 字數 1064 閱讀 8834

題目鏈結

二項式反演

首先 m 個顏色選出k個 最終答案要乘上cmk

c^k_m

cmk​

,然後對於第乙個格仔我們知道有k中方案,對於之後的所有格仔我們有k−1

k - 1

k−1中所以總共的就是k∗(

k−1)

n−

1k*(k - 1)^

k∗(k−1

)n−1

這時我們求出來的是不超過顏色不超過k的方案數,然後我們就能用到二項式反演求出恰好有k種顏色的方案數,二項式反演就是求出不超過k和恰好是k的乙個方式。

**:

#include

using namespace std;

typedef

long

long ll;

const

int mod =

1e9+7;

const

int n =

1e6+5;

ll f[n]

,inv[n]

;ll quick

(ll a, ll b)

return ans;

}void

init()

inv[n -5]

=quick

(f[n -5]

, mod -2)

;for

(int i = n -

6; i >=

0; i --)}

ll c

(int n,

int m)

intmain()

/*int flag = -1;

for(int i = 1; i <= k ;i ++)*/

ll ans2 =1;

for(ll i = m; i >= m - k +

1; i --

) ans2 = ans2*inv[k]

%mod;

ans1 = ans1*ans2%mod;

printf

("%lld\n"

,ans1);}

}

二項式反演

先從反演原理出發,假如存在兩個數列 f,g 我們知道 f n sum limits n a times g i 則 g n sum limits n b times f i 恆成立,那麼我們由 f 推出 g 的過程叫做反演。下面我們來 一下上面兩個式子恆成立的條件,將左邊帶入右邊,那麼有 begin...

二項式反演

形式與多步容斥相似,公式與多步容斥類似,多步容斥公式為 a 1 cup a 2 cup.cup a n sum limits a i sum limits n 1 ig i g n sum limits n 1 if i 顯然這兩個公式是等價,也是相互推導的關係,因此我們得到了二項式反演的形式1 形...

Kings Colors 二項式反演

題目鏈結 題目大意 給定乙個n個節點的樹,給它染色並且使得相鄰節點異色。問恰好用k種顏色的染色方案數 恰好k種不是很好求,因為我們很難保證每種顏色都用到,於是我們先考慮求最多k種顏色。那麼就讓每個點和它的父親節點異色就可以了。也就是k k 1 n 1k k 1 k k 1 n 1 那麼我們令f i ...