菜鸡博主开始看matrix tree定理辣!今天在hackerrank上刷水时,突然发现一个150pts的题,可是我不会(我好菜啊.jpg)(附链接: https://www.hackerrank.com/challenges/alex-vs-fedor )
打开editorial,发现是生成树计数相关,要用matrix tree定理,然后就一脸懵逼(智力-=2),决定学习matrix tree定理这个神奇的东西。
以下内容纯属博主口胡,不足之处希望dalao予以指出与更正。
前置技能:矩阵的行列式 (线代大佬们请手动忽略)
对于矩阵A[n][n],det(A)=sigma(sign*(A[1][p1]*A[2][p2]*...*A[n][pn])).
其中,p1....pn是1....n的一个排列,而sign=(-1)^( inv(p) mod 2),inv(p)=排列p中的逆序对数量.
矩阵行列式的一些性质:
1. 一个矩阵行列互换(A'[i][j]=A[j][i])得到矩阵A’,det(A)=det(A')
这个性质,根据行列式的定义,显然成立。
2.互换行列