矩阵树定理

记结论

如果有一条 \((i,j)\) 的边

无向图生成树计数

\(D\) 为度数矩阵,\(A\) 为邻接矩阵。那么令 \(L = D - A\)
则生成树为 \(L\) 去掉任意一行一列的 \(Det(L)\)

mat[i][i]++,mat[j][j]++,mat[i][j]--,mat[j][i]--

有向图外向树计数

\(D\) 为入度矩阵,\(A\) 为邻接矩阵。那么令 \(L = D - A\)
则生成树为 \(L\) 去掉任意一行一列的 \(Det(L)\)

mat[j][j]++,mat[i][j]--

有向图内向树计数

\(D\) 为出度矩阵,\(A\) 为邻接矩阵。那么令 \(L = D - A\)
则生成树为 \(L\) 去掉任意一行一列的 \(Det(L)\)

mat[i][i]++,mat[i][j]--

带权生成树乘积和

把度数换成权值即可,即 \(D[i][i],A[i][j]\) 为权值和。

mat[i][i]+=w,mat[j][j]+=w,mat[i][j]-=w,mat[j][i]-=w

\(\text{Ps}\):去掉哪一行一列就是以哪一行一列为根

posted @ 2024-02-27 18:00  Saka_Noa  阅读(22)  评论(0)    收藏  举报