Matrix - Tree 定理学习笔记
矩阵树定理学习笔记
我是复制粘贴机器
本文在很大程度上抄袭参考了《矩阵树定理及其无向图形式证明》 - 仙人长。
0. 定义与约定
本文中所有的图均指有重边无自环的图。
定义一个排列
性质
证:交换
i, j(i < j) 可以看作是把\pi_j 连续j - i 次与其左边的数交换,再把\pi_i 连续j - i - 1 次与其右边的数交换。而一次交换显然改变排列奇偶性。即证。
性质
证:归纳法。枚举
n 插入在哪一个位置,则新排列比原排列多的逆序对数量为n - 1, n - 2, \cdots, 0 ,由归纳结论显然。
对于一个排列
定义向量
1. 行列式
1.1 定义及基本性质
对于方阵
定义其行列式为
也可记为
性质
证明:因为
\{1, 2, \cdots, n\} 是一个排列,\{\pi_1, \pi_2, \cdots, \pi_n\} 也是一个排列,所以交换行列不会影响一个a_{i, \pi_i} 的序列是否会被计算的。
我们把这种交换行列的变换叫做方阵转置。
性质
性质
性质
推论
推论
事实上,以上所有对于行的性质,对于列也满足。我们根据性质
行列式值求法
若模数为质数,则可以结合推论
我们把这种方阵称作上三角方阵。那么行列式的值显然就是
若模数非质数,那么我们可以通过类似辗转相除的方式同样把它化为上三角方阵。具体地,我们每次可以对两行对应的数进行辗转相除。可以证明总操作次数不会超过
3. 无向图矩阵树定理
3.1 另一些定义
- 对于无向图
G ,定义其度数矩阵
- 定义图
G 的邻接矩阵为
- 定义图
G 的基尔霍夫(\rm kirchhoff )矩阵为
- 定义图
G 的关联矩阵M(G) 是一个n \times m 的矩阵,满足
若图无向,则方向随意。
引理
证明:
(M \times M^T)_{i, j} = \sum\limits_{k = 1} ^ m M_{i, k}M_{j, k} 当
i = j 时当且仅当i 为k 的一个端点时贡献为1 ,总贡献为D(i, i) 当i \ne j 时当且仅当i, j 为一条边的两个端点时贡献为-1 ,总贡献为-A(i, j) 。
-
定义图
G 的减关联矩阵M_0{G} 为关联矩阵去掉最后一行所形成的矩阵。 -
定义图
G 的子减关联矩阵M_0(G)[S] 为M_0(G) 中选出在S 中的列构成的矩阵。|S| = n - 1, S \subseteq \{1, 2, \cdots, m\} 。 -
定义无向图
G 的生成树数量为t(G) 。
3.2 无向图 \rm Matrix - Tree 定理
即,无向图的无根生成树数量等于其
引理
证明:此证明会反复应用行列式性质
1.4.2 。先来证明前一半。我们对于每个叶子节点,考虑用它所在的行消去其父亲所在的行。这类似于一个递归的过程,最后肯定每一行都为
\pm1 ,由此行列式的值也为\pm1 。再来证明后一半。肯定存在一个简单环,不妨设其边为
e_1, e_2, \cdots, e_k 。我们将证明:M_0(G)[S] 的这些列线性相关。事实上,我们每次可以选取一条边上的两个点,用一个所在的行去消另一个所在的行,这等价于在原环上将两条相邻的边合为一条边。所以最后能够消完,即这些列线性相关。于是我们可以得到一个列为0 ,所以行列式的值也为0 。
引理
对于
其中
证明:我们先来证明一个引理:
引理
3.3.1 :对于两个排列P, Q ,定义R 为其复合排列,满足R_i = P_{Q_i} ,那么\lambda(R) 与\lambda(P) + \lambda(Q) 同奇偶。引理的证明:我们可以把
P, Q 的复合看作是类似冒泡排序的过程:把排列P 相邻两项交换,直至其下标为排列Q 。初始逆序对数为\lambda(P) ,交换次数为\lambda(Q) ,得到排列R 。而一次交换改变逆序对数奇偶性,所以这两者奇偶性相等。推论:定义
P' 为满足P'_{P_i} = i ,那么\lambda(P) 与\lambda(P') 奇偶性相同。事实上,顺着上面的思路想,可以证明二者是相等的。
现在我们来证明原命题。一方面:
& \sum\limits_{S} \det(A[S]) \det(B[S]) \\ &= \sum\limits_{S} \det(A[S])\det(B[S]) \\ &= \sum\limits_{S} \left( \sum\limits_P (-1)^{\lambda(P)} \prod\limits_{i = 1} ^ n A_{i, S_{P_i}} \right) \left( \sum\limits_Q (-1) ^ {\lambda(Q)} \prod\limits_{i = 1} ^ n B_{S_i, Q_i} \right) \\ &= \sum\limits_S \sum\limits_P \sum\limits_Q (-1) ^ {\lambda(P) + \lambda(Q)} \prod\limits_{i = 1} ^ n A_{i, S_{P_i}} B_{S_i, Q_i} \\ \end{aligned} 另一方面:
\det(AB) &= \sum\limits_{P} (-1) ^ {\lambda(P)} \prod\limits_{i = 1} ^ n \sum\limits_{j = 1} ^ m A_{i, j} B_{j, P_i} \\ &= \sum\limits_P (-1) ^ {\lambda(P)} \sum\limits_R \prod\limits_{i = 1} ^ n A_{i, R_i} B_{R_i, P_i} \\ &= \sum\limits_R \sum\limits_P (-1) ^ {\lambda(P)} \prod\limits_{i = 1} ^ n A_{i, R_i} B_{R_i, P_i} \end{aligned} 其中
|R| = n ,且R_i \in \{1, 2, \cdots, m\} 。假设R_i = R_j (i \ne j) ,那么交换P_i, P_j 之后式子右边的值不变,而逆序对数量的奇偶性改变。我们考虑交换最小的两个,那么能交换的R 就是一一对应的,所以其和会互相抵消。所以我们只用考虑R_i 互不相同的情况。我们可以先选一个集合S ,再枚举其排列Q 。& \sum\limits_S \sum\limits_Q \sum\limits_P (-1) ^ {\lambda(P)} \prod\limits_{i = 1} ^ n A_{i, S_{Q_i}} B_{S_{Q_i}, P_i} \\ &= \sum\limits_{S} \sum\limits_Q \sum\limits_{P_{Q'}} (-1) ^ {\lambda(P_{Q'})} \prod\limits_{i = 1} ^ n A_{i, S_{Q_i}} B_{S_i, P_{Q'_i}} \\ &= \sum\limits_{S} \sum\limits_Q \sum\limits_{P_{Q'}} (-1) ^ {\lambda(P) + \lambda(Q)} \prod\limits_{i = 1} ^ n A_{i, S_{Q_i}} B_{S_i, P_{Q'_i}} \\ &= \sum\limits_S \sum\limits_Q \sum\limits_P (-1) ^ {\lambda(P) + \lambda(Q)} \prod\limits_{i = 1} ^ n A_{i, S_{Q_i}} B_{S_i, P_i} \\ \end{aligned} 引理证毕。
现在,原定理的证明已经变得非常简单。我们只需要证明删去最后一行及最后一列后结论成立,因为剩余情况唯一需要修改的地方只是
所以
若
至此,无向图无根树矩阵树定理证毕。
4. 有向图矩阵树定理
- 对于有向图,有入度矩阵及出度矩阵
- 定义有向图根向树生成树数量为
t_{root}(G, u) ,叶向树数量为t_{leaf}(G, u) 。
类似地,我们有
证明略。
5. 拓展及应用
若求带权生成树权值之和,可将权值看作重边。
[SHOI2016] 黑暗前的幻想乡
Description
给定
Solution
板子题,定理加上容斥即可。时间复杂度
[SDOI2014] 重建
Description
给定一张完全图和每条边被保留的概率。求保留下的边构成生成树的概率。
Solution
选到边集
[CQOI2018] 社交网络
Description
给一张有向图,求其叶向树生成树数量。
Solution
叶向树板子。