題目傳送門
題目大意:有一棵由 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 只寵物或領養者依次來到寵物收養場,他們都有乙個特徵值。當有乙隻寵物進入收養場時,如果存在等待的領養者,會從領養者中挑選和寵物特徵值最接近的領養者匹配 然後離開收養場 否則,寵物等待。當有乙個領養者進入收養場時,如果存在等待的寵物,會從寵物中挑選和領養者特徵值最...