一、求法一
1.以 i 为根的内向树计数
-
基尔霍夫矩阵
K
\mathcal{K}
K 是一个
n
×
n
n \times n
n×n 的一个矩阵
- L i , i = d e g _ i n i L_{i,i} = deg\_in_i Li,i=deg_ini
- L i , j = − n u m b e r _ o f _ e d g e ( i , j ) ( i ≠ j ) L_{i,j} = -number\_of\_edge (i, j)(i \neq j) Li,j=−number_of_edge(i,j)(i=j)
以 i i i 为根的内向树数量为 K \mathcal{K} K 删去 i i i 行 i i i 列的矩阵的行列式。
2.以 i 为根的外向树计数
建反图,即求以 i i i 为根的内向树计数
二、求法二
1.生成树计数
-
拉普拉斯矩阵
L
\mathcal{L}
L 是
n
×
n
n \times n
n×n 的一个矩阵
- L i , i = d e g i L_{i,i} = deg_i Li,i=degi
- L i , j = − n u m b e r _ o f _ e d g e ( i , j ) ( i ≠ j ) L_{i, j} = -number\_of\_edge (i, j)(i \neq j) Li,j=−number_of_edge(i,j)(i=j)
生成树数量为 L \mathcal{L} L 的任意一个 n − 1 n - 1 n−1 阶主子式的行列式
2.i 为根的内向树计数
-
关联矩阵
M
M
M 是
n
×
m
n \times m
n×m 的一个矩阵
- j j j 条边的起点是 i i i, M i , j = 1 M_{i,j} = 1 Mi,j=1
- j j j 条边的终点是 i i i, M i , j = − 1 M_{i,j} = -1 Mi,j=−1
- 否则为 0 0 0
基本关联矩阵: M M M 删去任何一行的矩阵
-
矩阵
N
N
N
- 第 j j j 条边的起点为 i i i, N i , j = 1 N_{i,j} = 1 Ni,j=1
- 否则为 0 0 0
以 i i i 为根的内向树的方案数为 M N T MN^{T} MNT 删去第 i i i 行 i i i 列的主子式的行列式
3.i 为根的外向图计数
建反向图,变为 2. 2. 2.
4.s 出发的欧拉回路数量
d
i
d_i
di 表示
i
i
i 的出度,
T
u
T_u
Tu 表示以
u
u
u 为根的内向生成树的数量
s
s
s 出发的欧拉回路数量为
T
s
×
d
s
!
×
∏
i
≠
s
(
d
i
−
1
)
!
T_s \times d_s! \times \prod_{i \neq s} (d_i - 1)!
Ts×ds!×∏i=s(di−1)!
5.整个图的欧拉回路数量
任意指定一个 s s s,整个图的欧拉回路数量为 T s × ∏ ( d i − 1 ) ! T_s \times \prod(d_i - 1)! Ts×∏(di−1)!