前置知识:高斯消元
先说矩阵求逆吧。
矩阵求逆
定义: 如果对于两个矩阵 A, B, 且 (A * B) 等于单位矩阵,那么就说 B 矩阵为 A 矩阵的逆矩阵。(通俗的说就是相乘为单位矩阵的矩阵)
求法不少,这里给一种非常简单但是不带证明的方法。
我们把一个单位矩阵接在 A 矩阵的右边,拼成一个 (n * 2n) 的矩阵,然后对这个矩阵进行高斯消元(类似),最后右边加入的那个矩阵就是 A 矩阵的逆矩阵。
证明我不是很会,所以就不说了,这儿结论记住就完了吧。
给个板子题链接
矩阵树定理
矩阵树定理用处很广,主要作用是求生成树的个数。
行列式
行列式是矩阵的性质,是一个数。
行列式的原始定义:
用处不大(主要与性质的证明有关),其实知道它与每一行全排列的逆序对有关系就行了。
基本求法:
消元求行列式,就是把这个矩阵消成上三角矩阵,然后把对角线上的数乘起来就是这个矩阵的行列式。
性质:(这个记住就行了)
- 单位矩阵的行列式为1。
- 交换矩阵的两行,行列式变号。(这个性质非常重要)
- 若某一行乘一个数 x,那行列式乘 x。(这个比较好理解,因为这一行选且只选一个嘛。)
- 某一行加上另一行的倍数,行列式不变。(很重要)
常用的性质就这么多,行列式只要记住性质并且会求就完了。
下面回归矩阵树定理。
经典
对于一个无向无权图,设矩阵 A 为临接矩阵,D 为其的度数矩阵,
它的基尔霍夫矩阵 K 就是 D - A。
然后令 KK 为 K 消去任意一行和那一列的矩阵。
那么 KK 的行列式就是这个图的生成树的个数。
加权
容易理解的情况 : 带重边的情况, 上面的经典矩阵树定理也是能够处理的。
根据乘法原理,对于某种生成树的形态,其贡献为每条边重的次数的乘积。
如果把重边次数理解成权值的话,那么矩阵树定理求的就是 : 所有生成树边权乘积的总和。
(这里注意度数矩阵变成了相邻边的权值和)
有向
这个就更简单了,主要分为内向树和外向树两种情况。
对于内向树我们只要出边,而对于外向树我们只要入边。(类似相反)
顺便说一下对于有向图,你去掉第 X 行和第 X 列就是代表着以 X 为根的生成树。
然后就没啥东西了,矩阵树定理的出题主要就是套各种东西最后用矩阵树定理计算。
给个板子题链接
再就是对于模数不是质数的情况我们需要用辗转相除法解决。