prufer序列与Cayley公式(学习笔记)
给定
n
n
n个结点有标号的无根树,与长度为
n
−
2
n-2
n−2的prufer序列为一一映射。
又因为序列的每个数有
n
n
n种选择,所以
n
n
n个结点有标号无根树的不同个数有:
n
n
−
2
n^{n-2}
nn−2种。
与此对应:因为根有
n
n
n种选择,所以
n
n
n个结点有标号有根树的不同个数有:
n
n
−
1
n^{n-1}
nn−1种。
推广:
n
n
n个结点度数依次为:
d
1
,
d
2
,
d
3
…
d
n
d_1,d_2,d_3\dots d_n
d1,d2,d3…dn的无根树有:
(
n
−
2
)
!
[
(
d
1
−
1
)
!
×
(
d
2
−
1
)
!
⋯
×
(
d
n
−
1
)
!
]
\dfrac{(n-2)!}{[(d_1-1)!\times(d_2-1)!\dots\times(d_n-1)!]}
[(d1−1)!×(d2−1)!⋯×(dn−1)!](n−2)! ,其中prufer编码中的数字
i
i
i恰好出现
d
i
−
1
d_i-1
di−1次。
且需要满足:
∑
i
=
1
n
d
[
i
]
−
1
=
n
−
2
\sum\limits_{i=1}^n d[i]-1=n-2
i=1∑nd[i]−1=n−2。
此外需要注意特判
n
=
=
1
n==1
n==1的情况,
d
[
i
]
=
=
0
d[i]==0
d[i]==0 只有唯一解,否则无解。
该公式的乘法形式为:组合数的形式。每次从剩下的数中选出
d
[
i
]
−
1
d[i]-1
d[i]−1个。
即公式为:
n
n
n个组合数相乘
C
(
n
−
2
,
d
[
1
]
−
1
)
C
(
n
−
2
−
(
d
[
1
]
−
1
)
,
d
[
2
]
−
1
)
C
(
n
−
2
−
(
d
[
1
]
−
1
)
−
(
d
[
2
]
−
1
)
,
d
[
3
]
−
1
)
…
C
(
d
[
n
]
−
1
,
d
[
n
]
−
1
)
C(n-2,d[1]-1)\\C(n-2-(d[1]-1),d[2]-1)\\C(n-2-(d[1]-1)-(d[2]-1),d[3]-1)\\\dots\\C(d[n]-1,d[n]-1)
C(n−2,d[1]−1)C(n−2−(d[1]−1),d[2]−1)C(n−2−(d[1]−1)−(d[2]−1),d[3]−1)…C(d[n]−1,d[n]−1)
















