生成树计数
考虑简单带权无向图的情况。
约定这张图为\(G=(V,E),n=|V|,m=|E|\),\(e_i=(u_i,v_i,w_i)\)表示第\(i\)条边,\(deg_u\)表示\(u\)所连边的边权和。
\(\text{Some Definitions}\)
邻接矩阵
\(\mathbf A_{n*n}\)满足\(\mathbf A_{i,j}=w(i,j)\)
度数矩阵
\(\mathbf D_{n*n}\)满足\(\mathbf D_{i,j}=[i=j]deg_i\)
关联矩阵
\(\mathbf B_{n*m}\)满足\(\mathbf B_{i,j}=[u_j=i\vee v_j=i](-1)^{[u_j=i]}\sqrt{w_j}\)
Laplace矩阵(Kirchhoff矩阵)
一张图的Laplace矩阵\(\mathbf L=\mathbf D-\mathbf A\)。
\(\text{Some Properties}\)
\(1.\det(\mathbf L)=0\)
\(2.\operatorname{rank}(\mathbf L)=n-1\)
\(3.\mathbf L\)的所有\(C_{i,j}\)都相等,且等于\(\mathbf L\)的\(\prod\limits_{i=1}^{n-1}\lambda_i\)。
\(3.\mathbf B^{\mathbf T}\mathbf B=\mathbf L\)
Kirchhoff定理
一棵生成树的权值为边权之积,所有生成树的权值和就是\(\mathbf L\)的任意一个\(C_{i,j}\)。
对于重边,考虑分配率,发现可以将重边缩成一条,边权求和即可。
可以发现Cayley定理就是Kirchhoff定理的特例。
Ex-Kirchhoff定理
考虑扩展至有向图的树形图。
\(\text{Part.1}\)
假如我们要求的是外向树。
修改:\(deg_i\)表示\(i\)的入边的边权和。
那么此时以\(i\)为根的所有外向树的权值和为\(\mathbf L\)的\(C_{i,i}\)。
\(\text{Part.2}\)
假如我们要求的是内向树。
修改:\(deg_i\)表示\(i\)的入边的边权和。
那么此时以\(i\)为根的所有外向树的权值和为\(\mathbf L\)的\(C_{i,i}\)。
其实内向树和外向树就是把边反向的区别。
因为把边反向相当于把\(\mathbf L\)转置,这并不会让它的某个\(C_{i,i}\)发生变化。
所以我们可以不需要修改\(\mathbf A\)。
还需要注意,在有向图中\(\mathbf A\)的数条性质皆不成立,关联矩阵也暂时没法定义。