树/图连通方案数

本文深入探讨了图论中的树与无向图的性质,通过Cayley定理阐述了无根树与有根树的数量计算,并利用Prufer序列解释了度数分布的树结构计数方法。此外,还分析了多连通块无向图的连通方案,展示了如何从连通块视角计算连通边的配置数,涉及连通性、二项式定理与组合数学的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、通过Cayley定理,可以得到 n n n个结点的无根树个数为 n n − 2 n^{n-2} nn2,证明参考Purfer序列。
2、那么一棵结点数为 n n n的有根树,就是在无根树的基础上面选定一个根,那么就是 n n − 1 n^{n-1} nn1种。
3、如果考虑连边顺序的不同,就相当于乘上连边的全排列数量 A n − 1 n − 1 = ( n − 1 ) ! A_{n-1}^{n-1}=(n-1)! An1n1=(n1)!。即无根树为 ( n − 1 ) ! n n − 2 (n-1)!n^{n-2} (n1)!nn2,有根树 ( n − 1 ) ! n n − 1 (n-1)!n^{n-1} (n1)!nn1
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=1n(di1)=n2,di=0。由Purfer序列的性质可以得到,度数为 d i d_i di的结点会在Purfer序列中出现 d i − 1 d_i-1 di1次。
所以相当于长度为 n n n满足每个数数量为 d i − 1 d_i-1 di1的排列个数,即为 ( 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)!} (n2d11,d21,,dn1)=i=1n(di1)!(n2)!
5、对于 n n n个点, m m m条边的无向图,有 k k k个连通块,连 k − 1 k-1 k1条边使图连通的方案数。设第 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 nk2i=1knumi
两种方法得到:
(1)
需要使图连通,可以把连通块看成一个点,转换成构成树。那么就需要连 k − 1 k-1 k1条边,由Prufer序列,选择 1 ∼ n 1\sim n 1n中的任何一个数都可以,所以方案数为:
n k − 2 n^{k-2} nk2
又因为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 nk2i=1knumi
(2)
首先我们可以将连通块看成一个点,那么就是对这些连通块连 k − 1 k-1 k1条边使他们连通。假设这些连通块的度数(边数)为 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)!} (k2d11,d21,,dk1)=i=1n(di1)!(n2)!
又因为每个连通块有 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} (k2d11,d21,,dk1)i=1knumidi
计算了一种之后,我们考虑所有的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 di10,i=1kdi1=k2。所以一共有:
∑ 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} di10,i=1kdi1=k2(k2d11,d21,,dk1)i=1knumidi
考虑化简,我们通过二项式定理:
( 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=ki0,i=1tki=n(nk1,k2,,kt)i=1txiki
这样一看式子是不是很像?可以化简为:
( 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)k2i=1knumi
又因为 ∑ i = 1 k n u m i = n \sum\limits_{i=1}^{k} num_i=n i=1knumi=n,所以最后得到:
n k − 2 ∏ i = 1 k n u m i n^{k-2}\prod\limits_{i=1}^{k} num_i nk2i=1knumi

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值