矩阵树定理
图的关联矩阵
对于一张无向图 G=(V,E),定义其关联矩阵 M 为(在此我们给边暂定方向,一条边 e 的入点和出点分别为 in(e) 和 out(e)):
Mi,j=⎩⎨⎧1−10Vi=out(Ej)Vi=in(Ej)otherwise.
Laplacian Matrix
定义 cnt(u,v) 表示无向图中边 (u,v) 的数量,则图 G=(V,E) 的 Laplacian Matrix L 为
Li,j={deg(Vi)−cnt(Vi,Vj)i=ji=j
即为图的度数矩阵 D 减去图的邻接矩阵 E,Ei,i 同时等价于和 i 相邻的边权之和。
其中有等式 L=MMT,可以分讨 i=j 和 i=j 的关系来证明。
令 Cn×n=An×mBm×n,A[S] 表示选出 A 所有 ∈S 的列构成的矩阵,B[S] 表示选出 B 所有 ∈S 的行构成的矩阵,则有:
det(C)=S⊂{1,⋯,m},∣S∣=n∑det(A[S])det(B[S])
下面矩阵 A 中选出所有 ∈S 的行 / 列构成的矩阵行列式统写为 det(A[S]),因为 det(A)=det(AT)。
证明略,详细可看 sys 博客。
无向图的 Matrix-Tree 定理
令 L0 为无向图的 Laplacian Matrix 去掉第 k 行第 k 列(k 任意),则无向图的生成树个数为 det(L0)。**
证明
令 M0 表示 L0 对应的关联矩阵,则:
det(L0)=S⊂{1,⋯,m},∣S∣=n−1∑det(M0[S])det(M0T[S])=S⊂{1,⋯,m},∣S∣=n−1∑det(M0[S])2
观察从 M0 中选 ∈S 的列向量构成的矩阵,相当于从 m 条边里面选 n−1 条边,且如果出现环矩阵应该是不满秩的,此时 det(M0[S])2=0,否则我们可以类似高斯消元从叶子到根把矩阵消成每行每列只有一个元素,且为 −1/1,此时 det(M0[S])2=1。
这里还有另一种简洁证法,不多阐述。
有向图的 Matrix-Tree 定理
令 Din 和 Dout 分别为图 G 的入度矩阵和出度矩阵,对应 Ein/Lin 和 Eout/Lout,则:
- 以 r 为根的叶向树个数为 Lin 去掉第 r 行第 r 列后的行列式。
- 以 r 为根的根向树个数为 Lout 去掉第 r 行第 r 列后的行列式。
证明比较相似,分别证明 Lin=MDinT,然后 det(M) 限制树无环,det(Din) 限制除 r 恰好都有一条入边,out 同理。
带权图的 Matrix-Tree 定理
把权值看成重边即可。
BEST 定理
令一个有向图 G=(V,E) 的根向生成树为 Tout(G),则若此图为欧拉图,则 s 出发并从 s 结束的欧拉回路条数为 dTout(G)u∈V∏(deg(u)−1)。其中当循环同构算一种方案时,d=1,否则 d=deg(s)。
证明
以下证明基于 d=deg(s)。
式子的意思即为我们在原图中钦定每个点最后走的边作为根向树(除了 s),其他的边任意排列,我们只要证明这两者是双射关系。
考虑这样的走法:从根节点开始按顺序走,只有当前节点 u 除了 (u,fau) 的边都被走过了,再走这条边。
考虑是否能保证每条边都被走过。
如果走到 u=rt 走不下去了,根据欧拉图定义,这种情况不可能存在。
如果走到 u=rt 走不下去了,则存在一条内向树边未走,则这条边到根的所有边都未走,根据欧拉图定义可以退出根节点有至少一条出边未走,矛盾。
我们提出欧拉路中每个点最后走的出边(除了 s),一定是根向树。如果出现了环,说明一个点绕了一圈,但是走不出去了,不满足欧拉回路的性质。
故双射关系得证。
Prufer 序列
n 个点构成的无根树个数为 nn−2。
Cayley 定理:n 个点,连接 k 个大小分别为 a1,a2,⋯,ak 的树,方案数为 nk−2∏ai,证明如下:
容易得到其 Laplacian 矩阵去掉 k 行 & 列的行列式如下:
a1(n−a1)−a2a1⋮−ak−1a1−a2a1a2(n−a2)⋮−ak−1a2⋯⋯⋱⋯−a1ak−1−a2ak−1⋮ak−1(n−ak−1)
提个系数,并把 2∼k−1 列加到第一列得到:
i=1∏k−1aiakak⋮ak−a2n−a2⋮−a2⋯⋯⋱⋯−ak−1−ak−1⋮n−ak−1
最后把所有行都减去第一列:
i=1∏k−1aiak0⋮0−a2n⋮0⋯⋯⋱⋯−ak−10⋮n
答案为 nk−2i=1∏kai。
LGV 引理
对于一个 n 个点的有向无环图,令 w(P) 表示路径 P 上所有边边权乘积,令 e(u,v) 表示所有 u⇝v 的路径 P 的 w(P) 之和。给定起点序列 a 和终点序列 b,令
M=e(a1,b1)e(a2,b1)⋮e(an,b1)e(a1,b2)e(a2,b2)⋮e(an,b2)⋯⋯⋱⋯e(a1,bn)e(a2,bn)⋮e(an,bn)
LGV 引理声称(其中 sgn(p)=(−1)π(p),π(p) 为排列 p 的逆序对个数)
det(M)=S:a⇝b∑sgn(S)P∈S∏w(P)
即 M 的行列式为所有 a⇝b 的不交路径组的路径权值与 a,b 置换 sgn 之积(记住这里的定义)。
证明
det(M)=p∑sgn(p)i=1∏ne(ai,bpi)=p∑sgn(p)P∈p∏w(P)
上面分配律拆一下就是下面的式子,你发现除了不交的限制其他已经一样了,只要证明有交的路径组贡献为 0 就好了。
对于每一对有交路径组,找到最小的编号 i 使得 ai⇝bpi 这条路径和别的路径有交,有交的第一部分是 u⇝v,另一条有交的路径为 x⇝y。交换 v⇝bpi 和 v⇝y,置换逆序对奇偶性改变,sgn 正负性改变。而且容易发现有交路径组必定能两两对应。注意一下如果找到编号最小的二元组 (i,j) 有交是错的,因为不构成双射。
听说边权上可以套 GF,等我学了再回来补。