定理部分并没有什么原创内容,全是阅读上面两篇文章做的笔记。
矩阵树定理
K
i
r
c
h
h
o
f
f
Kirchhoff
Kirchhoff 矩阵树定理(简称矩阵树定理)解决了一张图的生成树个数计数问题。
矩阵树定理有很多形式,以下内容是一些声明。
应用矩阵树定理的图允许重边,但是不允许自环。
以下内容是照抄oiwiki的
无向图情况:
设 G G G是一个有 n n n个顶点的无向图。定义度数矩阵 D ( G ) D(G) D(G)为:
D
i
i
(
G
)
=
d
e
g
(
i
)
,
D
i
j
(
G
)
=
0
,
i
≠
j
D_{ii}(G)=deg(i),D_{ij}(G)=0,i ≠ j
Dii(G)=deg(i),Dij(G)=0,i=j
设
#
e
(
i
,
j
)
\#e(i,j)
#e(i,j)为点
i
i
i与点
j
j
j相连的边数,并定义邻接矩阵
A
A
A为:
A
i
j
(
G
)
=
A
j
i
(
G
)
=
#
e
(
i
,
j
)
,
i
≠
j
A_{ij}(G)=A_{ji}(G)=\#e(i,j),i≠j
Aij(G)=Aji(G)=#e(i,j),i=j
定义
L
a
p
l
a
c
e
Laplace
Laplace矩阵(又称
K
i
r
c
h
h
o
f
f
Kirchhoff
Kirchhoff矩阵)
L
L
L为:
L
(
G
)
=
D
(
G
)
−
A
(
G
)
L(G)=D(G)-A(G)
L(G)=D(G)−A(G)
记图 G G G的生成树个数为 t ( G ) t(G) t(G)。
有向图情况
设
G
G
G是一个有
n
n
n个顶点的有向图。定义出度矩阵
D
o
u
t
(
G
)
D^{out}(G)
Dout(G)为:
D
i
i
o
u
t
(
G
)
=
d
e
g
o
u
t
(
i
)
,
D
i
j
o
u
t
=
0
,
i
≠
j
D_{ii}^{out}(G)=deg^{out}(i),D_{ij}^{out}=0,i≠j
Diiout(G)=degout(i),Dijout=0,i=j
类似地定义入度矩阵
D
i
n
(
G
)
D^{in}(G)
Din(G)为:
D
i
i
i
n
(
G
)
=
d
e
g
i
n
(
i
)
,
D
i
j
i
n
=
0
,
i
≠
j
D_{ii}^{in}(G)=deg^{in}(i),D_{ij}^{in}=0,i≠j
Diiin(G)=degin(i),Dijin=0,i=j
设
#
e
(
i
,
j
)
\#e(i,j)
#e(i,j)为点
i
i
i指向点
j
j
j的有向边数,并定义邻接矩阵
A
A
A为
A
i
j
(
G
)
=
#
e
(
i
,
j
)
,
i
≠
j
A_{ij}(G)=\#e(i,j),i≠j
Aij(G)=#e(i,j),i=j
定义出度
L
a
p
l
a
c
e
Laplace
Laplace矩阵
L
o
u
t
L^{out}
Lout为:
L
o
u
t
(
G
)
=
D
o
u
t
(
G
)
−
A
(
G
)
L^{out}(G)=D^{out}(G)-A(G)
Lout(G)=Dout(G)−A(G)
类似地可以定义入度
L
a
p
l
a
c
e
Laplace
Laplace矩阵
L
i
n
L^{in}
Lin为:
L
i
n
(
G
)
=
D
i
n
(
G
)
−
A
(
G
)
L^{in}(G)=D^{in}(G)-A(G)
Lin(G)=Din(G)−A(G)
记图
G
G
G的以
r
r
r为根的根向树形图(内向生成树)个数为
t
r
o
o
t
(
G
,
r
)
t^{root}(G,r)
troot(G,r),
叶向树形图(外向生成树)个数为
t
l
e
a
f
(
G
,
r
)
t^{leaf}(G,r)
tleaf(G,r)
定理叙述
1.无向图行列式形式
对于任意的i,都有
t
(
G
)
=
det
L
(
G
)
(
1
,
2
,
⋯
,
i
−
1
,
i
+
1
,
⋯
,
n
1
,
2
,
⋯
,
i
−
1
,
i
+
1
,
⋯
,
n
)
t(G) = \det L(G) \binom{1,2,\cdots,i-1,i+1,\cdots,n}{1,2,\cdots,i-1,i+1,\cdots,n}
t(G)=detL(G)(1,2,⋯,i−1,i+1,⋯,n1,2,⋯,i−1,i+1,⋯,n)
其中记号
L
(
G
)
(
1
,
2
,
⋯
,
i
−
1
,
i
+
1
,
⋯
,
n
1
,
2
,
⋯
,
i
−
1
,
i
+
1
,
⋯
,
n
)
L(G)\binom{1,2,\cdots,i-1,i+1,\cdots,n}{1,2,\cdots,i-1,i+1,\cdots,n}
L(G)(1,2,⋯,i−1,i+1,⋯,n1,2,⋯,i−1,i+1,⋯,n)表示矩阵
L
(
G
)
L(G)
L(G)的第
1
,
⋯
,
i
−
1
,
i
+
1
,
⋯
,
n
1,\cdots,i-1,i+1,\cdots,n
1,⋯,i−1,i+1,⋯,n行与第
1
,
⋯
,
i
−
1
,
i
+
1
,
⋯
,
n
1,\cdots,i-1,i+1,\cdots,n
1,⋯,i−1,i+1,⋯,n列构成的子矩阵。
即,无向图的
L
a
p
l
a
c
e
Laplace
Laplace矩阵的所有
n
−
1
n-1
n−1阶主子式相等
即删掉 L ( G ) L(G) L(G)第 i i i行和第 i i i列 剩下的矩阵的行列式都相等,为 t ( G ) t(G) t(G)
2.无向图特征值形式
对于一个
n
n
n阶方阵
A
A
A,若
x
x
x为一个
n
n
n维非零向量,
λ
\lambda
λ满足
A
x
=
λ
x
Ax=\lambda x
Ax=λx
则称
λ
\lambda
λ为方阵
A
A
A的特征值
设
λ
1
,
λ
2
,
⋯
,
λ
n
−
1
\lambda_1,\lambda_2,\cdots,\lambda_{n-1}
λ1,λ2,⋯,λn−1为无向图
G
G
G的
L
a
p
l
a
c
e
Laplace
Laplace矩阵的
n
−
1
n-1
n−1个非零特征值,那么
t
(
G
)
=
1
n
λ
1
λ
2
⋯
λ
n
−
1
t(G)=\frac{1}{n}\lambda_1\lambda_2\cdots\lambda_{n-1}
t(G)=n1λ1λ2⋯λn−1
3.有向图根向形式
对于任意的 k k k,都有 t r o o t ( G , k ) = det L o u t ( G ) ( 1 , 2 , ⋯ , k − 1 , k + 1 , ⋯ , n 1 , 2 , ⋯ , k − 1 , k + 1 , ⋯ , n ) t^{root}(G,k)=\det L^{out}(G)\binom{1,2,\cdots,k-1,k+1,\cdots,n}{1,2,\cdots,k-1,k+1,\cdots,n} troot(G,k)=detLout(G)(1,2,⋯,k−1,k+1,⋯,n1,2,⋯,k−1,k+1,⋯,n)
4.有向图叶向形式
对于任意的 k k k,都有 t l e a f ( G , k ) = det L i n ( G ) ( 1 , 2 , ⋯ , k − 1 , k + 1 , ⋯ , n 1 , 2 , ⋯ , k − 1 , k + 1 , ⋯ , n ) t^{leaf} (G,k)=\det L^{in}(G){\binom{1,2,\cdots,k-1,k+1,\cdots,n}{1,2,\cdots,k-1,k+1,\cdots,n}} tleaf(G,k)=detLin(G)(1,2,⋯,k−1,k+1,⋯,n1,2,⋯,k−1,k+1,⋯,n)
5.BEST定理
具有欧拉回路的图称为欧拉图。
设
G
G
G是有向欧拉图,那么
G
G
G中不同欧拉回路总数
e
c
(
G
)
ec(G)
ec(G)是
e
c
(
G
)
=
t
r
o
o
t
(
G
,
k
)
∏
v
∈
V
(
d
e
g
(
v
)
−
1
)
!
ec(G)=t^{root}(G,k)\prod_{v\in V}(deg(v)-1)!
ec(G)=troot(G,k)v∈V∏(deg(v)−1)!
注意,对欧拉图
G
G
G的任意两个顶点
k
,
k
′
k,k'
k,k′,都有
t
r
o
o
t
(
G
,
k
)
=
t
r
o
o
t
(
G
,
k
′
)
t^{root}(G,k)=t^{root}(G,k')
troot(G,k)=troot(G,k′)
且欧拉图G的所有顶点的入度和出度相等
行列式的求解
用高斯消元消出上三角矩阵,则有对角线上的值的乘积等于行列式的值。
由于模意义下不能有小数,通常需要用辗转相除法求解
具体代码见例题
1.小z的房间
2.轮状病毒
3.HDU2481 Toy
线代水平过低 并不会用Laplace矩阵求那个递推式