矩阵树定理

· · 个人记录

这是一类生成树计数的技巧,不过相对其他算法来说比较独立,命题空间不如其他算法大,因而在历年的全国性大赛中没有怎么出现过。

写出这篇文章主要是介绍一个关于它的美妙证明。

一、矩阵树定理

定理内容

定义无向图G\text{Laplace}矩阵L为其「度数矩阵」减去「邻接矩阵」,则图G的「生成树」个数为L任意位置的「代数余子式」。

概念解释

使用限制

(之后会给出这些限制下的计数方法)

二、相关证明

引理1

无向图的\text{Laplace}矩阵L在每个位置的代数余子式都相等。

证明

引理2

矩阵Ln-1n-1列的「行列式」中的每一项(乘了对角线上的值就将其拆成多个1相加),与满足下列条件的有向有色图H存在「双射」:

  • n之外每个点只有一条出边。
  • 每条边有黑白两种可能,但黑色边只能出现在环上,且对于任意一个环,环上要么全为黑色边,要么全为白色边。

证明

定理

G的「生成树」个数为其\text{Laplace}矩阵任意位置的「代数余子式」。

证明

三、相关推论

推论\bold{1}

有向图G的以x为「根」的「生成内向树」个数为其「出度矩阵」减「邻接矩阵」在(x,x)处的「代数余子式」。(「邻接矩阵」定义为a_{ij}=[i\rightarrow j]\in E

证明

推论\bold{2}

有向图G的以x为「根」的「生成外向树」个数为其「入度矩阵」减「邻接矩阵」在(x,x)处的「代数余子式」。(「邻接矩阵」定义为a_{ij}=[i\leftarrow j]\in E

证明

推论\bold{3}

S=\{i_1,i_2,\dots,i_k\},无向图G的满足i_1,i_2,\dots,i_k不在同一棵树的含有恰好k个「联通块」的「生成森林」个数为

\det(L_{S,S})

其中A_{P,Q}表示矩阵A删去P集合中的行和Q集合中的列得到的结果。

证明

推论\bold{4}

无向带权图G的所有生成树边权权值之积的「和」等于其「带权度数矩阵」减去「带权邻接矩阵」的任意「代数余子式」。

证明

推论\bold{5}

假设完全无向图G的一个生成森林有k个联通块,每个联通块分别有a_1,a_2,\dots,a_k个点。那么该图的包含这个森林的生成树个数为n^{k-2}\prod_{i=1}^{k} a_i

证明