矩阵树定理||高斯消元求行列式

参考链接-博客园
参考链接-oiwiki

定理部分并没有什么原创内容,全是阅读上面两篇文章做的笔记。

矩阵树定理

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,,i1,i+1,,n1,2,,i1,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,,i1,i+1,,n1,2,,i1,i+1,,n)表示矩阵 L ( G ) L(G) L(G)的第 1 , ⋯   , i − 1 , i + 1 , ⋯   , n 1,\cdots,i-1,i+1,\cdots,n 1,,i1,i+1,,n行与第 1 , ⋯   , i − 1 , i + 1 , ⋯   , n 1,\cdots,i-1,i+1,\cdots,n 1,,i1,i+1,,n列构成的子矩阵。
即,无向图的 L a p l a c e Laplace Laplace矩阵的所有 n − 1 n-1 n1阶主子式相等

即删掉 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,,λn1为无向图 G G G L a p l a c e Laplace Laplace矩阵的 n − 1 n-1 n1个非零特征值,那么 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λn1

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,,k1,k+1,,n1,2,,k1,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,,k1,k+1,,n1,2,,k1,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)vV(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矩阵求那个递推式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值