1、通过Cayley定理,可以得到
n
n
n个结点的无根树个数为
n
n
−
2
n^{n-2}
nn−2,证明参考Purfer序列。
2、那么一棵结点数为
n
n
n的有根树,就是在无根树的基础上面选定一个根,那么就是
n
n
−
1
n^{n-1}
nn−1种。
3、如果考虑连边顺序的不同,就相当于乘上连边的全排列数量
A
n
−
1
n
−
1
=
(
n
−
1
)
!
A_{n-1}^{n-1}=(n-1)!
An−1n−1=(n−1)!。即无根树为
(
n
−
1
)
!
n
n
−
2
(n-1)!n^{n-2}
(n−1)!nn−2,有根树
(
n
−
1
)
!
n
n
−
1
(n-1)!n^{n-1}
(n−1)!nn−1。
4、
n
n
n个结点,每个结点度数为
d
i
d_i
di的树。首先满足
∑
i
=
1
n
(
d
i
−
1
)
=
n
−
2
,
d
i
≠
0
\sum\limits_{i=1}^{n}(d_i-1)=n-2,d_i\neq 0
i=1∑n(di−1)=n−2,di=0。由Purfer序列的性质可以得到,度数为
d
i
d_i
di的结点会在Purfer序列中出现
d
i
−
1
d_i-1
di−1次。
所以相当于长度为
n
n
n满足每个数数量为
d
i
−
1
d_i-1
di−1的排列个数,即为
(
n
−
2
d
1
−
1
,
d
2
−
1
,
⋯
,
d
n
−
1
)
=
(
n
−
2
)
!
∏
i
=
1
n
(
d
i
−
1
)
!
\begin{pmatrix}n-2\\d_1-1,d_2-1,\cdots,d_n-1\end{pmatrix}=\cfrac{(n-2)!}{\prod\limits_{i=1}^{n} (d_i-1)!}
(n−2d1−1,d2−1,⋯,dn−1)=i=1∏n(di−1)!(n−2)!。
5、对于
n
n
n个点,
m
m
m条边的无向图,有
k
k
k个连通块,连
k
−
1
k-1
k−1条边使图连通的方案数。设第
i
i
i个连通块大小为
n
u
m
i
num_i
numi。答案为
n
k
−
2
∏
i
=
1
k
n
u
m
i
n^{k-2}\prod\limits_{i=1}^{k}num_i
nk−2i=1∏knumi。
两种方法得到:
(1)
需要使图连通,可以把连通块看成一个点,转换成构成树。那么就需要连
k
−
1
k-1
k−1条边,由Prufer序列,选择
1
∼
n
1\sim n
1∼n中的任何一个数都可以,所以方案数为:
n
k
−
2
n^{k-2}
nk−2
又因为Prufer序列,对于每个连通块,都有
n
u
m
i
num_i
numi种选择和父亲连接,所以根据乘法原理,最终答案为:
n
k
−
2
∏
i
=
1
k
n
u
m
i
n^{k-2}\prod\limits_{i=1}^{k}num_i
nk−2i=1∏knumi
(2)
首先我们可以将连通块看成一个点,那么就是对这些连通块连
k
−
1
k-1
k−1条边使他们连通。假设这些连通块的度数(边数)为
d
i
d_i
di,那么连通的方案数就是:
(
k
−
2
d
1
−
1
,
d
2
−
1
,
⋯
,
d
k
−
1
)
=
(
n
−
2
)
!
∏
i
=
1
n
(
d
i
−
1
)
!
\begin{pmatrix}k-2\\d_1-1,d_2-1,\cdots,d_k-1\end{pmatrix}=\cfrac{(n-2)!}{\prod\limits_{i=1}^{n} (d_i-1)!}
(k−2d1−1,d2−1,⋯,dk−1)=i=1∏n(di−1)!(n−2)!
又因为每个连通块有
n
u
m
i
num_i
numi个点,每条边的选择就有
n
u
m
i
num_i
numi个,所以对于每个连通块都会有
n
u
m
i
d
i
num_i^{d_i}
numidi种连接方式,所以一种Prufer序列总共有:
(
k
−
2
d
1
−
1
,
d
2
−
1
,
⋯
,
d
k
−
1
)
∏
i
=
1
k
n
u
m
i
d
i
\begin{pmatrix}k-2\\d_1-1,d_2-1,\cdots,d_k-1\end{pmatrix}\prod\limits_{i=1}^{k}num_i^{d_i}
(k−2d1−1,d2−1,⋯,dk−1)i=1∏knumidi
计算了一种之后,我们考虑所有的Prufer序列有多少种,由性质可以知道,Prufer序列应该满足
d
i
−
1
≥
0
,
∑
i
=
1
k
d
i
−
1
=
k
−
2
d_i-1\ge 0,\sum\limits_{i=1}^{k} d_i-1=k-2
di−1≥0,i=1∑kdi−1=k−2。所以一共有:
∑
d
i
−
1
≥
0
,
∑
i
=
1
k
d
i
−
1
=
k
−
2
(
k
−
2
d
1
−
1
,
d
2
−
1
,
⋯
,
d
k
−
1
)
∏
i
=
1
k
n
u
m
i
d
i
\sum\limits_{d_i-1\ge0,\sum\limits_{i=1}^{k}d_i-1=k-2}\begin{pmatrix}k-2\\d_1-1,d_2-1,\cdots,d_k-1\end{pmatrix}\prod\limits_{i=1}^{k}num_i^{d_i}
di−1≥0,i=1∑kdi−1=k−2∑(k−2d1−1,d2−1,⋯,dk−1)i=1∏knumidi
考虑化简,我们通过二项式定理:
(
x
1
+
x
2
+
⋯
+
x
t
)
n
=
∑
k
i
≥
0
,
∑
i
=
1
t
k
i
=
n
(
n
k
1
,
k
2
,
⋯
,
k
t
)
∏
i
=
1
t
x
i
k
i
(x_1+x_2+\cdots+x_t)^n=\sum\limits_{k_i\ge 0, \sum\limits_{i=1}^{t}k_i=n}\begin{pmatrix}n\\k_1,k_2,\cdots,k_t\end{pmatrix}\prod\limits_{i=1}^{t}x_i^{k_i}
(x1+x2+⋯+xt)n=ki≥0,i=1∑tki=n∑(nk1,k2,⋯,kt)i=1∏txiki
这样一看式子是不是很像?可以化简为:
(
n
u
m
1
+
n
u
m
2
+
⋯
+
n
u
m
k
)
k
−
2
∏
i
=
1
k
n
u
m
i
(num_1+num_2+\cdots+num_k)^{k-2}\prod\limits_{i=1}^{k} num_i
(num1+num2+⋯+numk)k−2i=1∏knumi
又因为
∑
i
=
1
k
n
u
m
i
=
n
\sum\limits_{i=1}^{k} num_i=n
i=1∑knumi=n,所以最后得到:
n
k
−
2
∏
i
=
1
k
n
u
m
i
n^{k-2}\prod\limits_{i=1}^{k} num_i
nk−2i=1∏knumi