HNOI 2004 樹的計數 題解

2021-09-28 13:43:37 字數 1080 閱讀 5347

題目傳送門

題目大意:有一棵由 n

nn 個點組成的樹,其中 d[i

]d[i]

d[i]

表示第 i

ii 個點的度為 d[i

]d[i]

d[i]

,問有多少棵滿足要求的樹。

c ay

le

ycayley

cayley

公式的一種應用。(如果不會請點這裡)

套乙個高精度板子即可,但是還要判無解的情況。

直接上**:

#include

#include

struct node

void

init()

void

print()

void

check()

} node operator*(

const

int&x)

const

void

operator-=

(const node &b)

bool

operator

>=

(const node &b)

node operator/(

const node &b)}}

re.t=t;

while

(re.a[re.t]==0

&&t>

1)re.t--

;return re;}}

;node ans,d;

int n,sum=0;

intmain()

ans.

init()

;for

(int i=

2;i<=n-

2;i++

) ans=ans*i;

for(

int i=

1,x;i<=n;i++)if

(sum!=n*2-

2)printf

("0");

else ans.

print()

;}

HNOI2004 樹的計數

hnoi2004 樹的計數 這道題資料水的一匹我無話可說,謎之錯誤 陣列賦值的時候乙個下標寫錯了變數 居然只wa了一組。寫這道題關鍵需要知道prufer序列以及cayley定理。prufer數列,可以用來解一些關於無根樹計數的問題。prufer數列是一種無根樹的編碼表示,對於一棵n個節點帶編號的無根...

HNOI2004 樹的計數

傳送門 prufer 序列入門題。首先特判掉 n 1 的情況 度數為 0 則有唯一解,否則無解。然後特判掉總度數不為 2 n 1 的情況 無解。再特判一下出現度數為 0 的點,也就是樹不連通的情況。特判掉這些之後,就可以直接套公式了。ans frac n d i 1 如果不想用組合數來簡化式子的話就...

HNOI2004 寵物收養場 題解 set

題目大意 有 n n le 80000 只寵物或領養者依次來到寵物收養場,他們都有乙個特徵值。當有乙隻寵物進入收養場時,如果存在等待的領養者,會從領養者中挑選和寵物特徵值最接近的領養者匹配 然後離開收養場 否則,寵物等待。當有乙個領養者進入收養場時,如果存在等待的寵物,會從寵物中挑選和領養者特徵值最...