題目:
就和這篇部落格說的一樣:
注意每次是 /i 而不是 /(i!),因為 i-1 時也已經去了重,現在就是對於新加一條邊的多種方式帶來一種局面去重,從每一種局面看,新加的邊可以是任意一條,所以 /i。
**如下:
#include#include#include
#include
using
namespace
std;
typedef
long
long
ll;int
const xn=1005,mod=10007
;int
n,m,k,deg[xn];
ll f[xn][xn];
intrd()
while(ch>='
0'&&ch<='
9')ret=(ret<<3)+(ret<<1)+ch-'
0',ch=getchar();
return f?ret:-ret;
}ll pw(ll a,
intb)
ll calc(
int x)
intmain()
printf(
"%lld\n
",f[k][0
]);
return0;
}
題解 BZOJ2169 連邊
看到資料範圍很容易想到 dp 方程式 設 f i j 代表已經連了 i 條邊,還有 j 個奇數點,並且方案全部合法的方案數 那麼有 displaystyle beginf i j f i 1 j 2 binom f i 1 j 2 binom f i 1 j n j j end 分別代表連兩個奇數點...
bzoj1042 DP 容斥原理 硬幣購物
description 硬幣購物一共有4種硬幣。面值分別為c1,c2,c3,c4。某人去商店買東西,去了tot次。每次帶di枚ci硬幣,買si的價值的東西。請問每次有多少種付款方法。input 第一行 c1,c2,c3,c4,tot 下面tot行 d1,d2,d3,d4,s output 每次的方法...
bzoj 3812 狀壓dp 容斥原理
題意 乙個n個點m條邊的有向強連通圖,去掉一些邊使其仍然強連通,求方案數。以前做的題,現在看已經不知道自己在寫什麼了。寫一點題解。如果乙個圖縮點後變成乙個有多個點的dag,那麼這玩意一定不連通。設f i 表示拆邊使集合i強連通的方案數,g i 表示i集合的點縮點後成為奇數個彼此沒有邊的點的方案數,p...