矩陣樹定理

2022-05-15 09:46:24 字數 638 閱讀 2755

#includeusing

namespace

std;

const

int n = 505

;const

long

long mod = 1e4+7

;long

long det(long

long a[n][n],int n)//

0 ~ n-1 求行列式的值

}long

long tmp = 1

;

for (int i = 0; i < n; ++i)

swap(a[i], a[j]);

tmp *= -1

; }

}if (!a[i][i]) return0;

tmp = a[i][i] * tmp %mod;

}return (tmp + mod) %mod;}/*

入度矩陣對應的外向樹,出度矩陣對應著內向樹(都是指向父親的邊的事是出度或者入度)無根樹就是兩條有向邊都加上

有向樹必須刪掉根所在的那一行和一列,無根樹可以任意

然後對於這n−1階的矩陣求乙個行列式就是最小生成樹的個數

*/int

main()

矩陣樹定理

構建基爾霍夫矩陣,基爾霍夫矩陣的任意乙個代數余子式是所有生成樹的邊權積的和,也就是求的是 sum limits t prod limits v e 基爾霍夫矩陣為度數矩陣減去鄰接矩陣 任意去掉一行一列,所得到的矩陣的行列式即為所求 外向樹為入度矩陣減去鄰接矩陣 內向樹出度矩陣減去鄰接矩陣 刪去根所在...

矩陣樹定理

quad 設無向圖有 n 個節點,拉普拉斯矩陣 l 是乙個 n times n 的矩陣。quad 矩陣構造方法 所有的 l 的值為節點 i 的度數,即有多少邊和節點 i 相連。所有的 l i 不等於 j 的值為節點 i 和 節點 j 之間相連的邊數的相反數 quad 將拉普拉斯矩陣去掉任意的一行和一...

模板 矩陣樹定理

求生成樹個數 定義度數矩陣a,a i i 為i號點的度數 鄰接矩陣b,b i j 為點i到j的邊數 對於無向圖,用a b,然後隨意選乙個i,去掉第i行和第i列,它的行列式就是生成樹個數 對於有向圖,外向樹的個數就是把度數矩陣換成入度矩陣 內向樹的個數就是換成出度矩陣 刪掉的行列一定要是根 首先有三條...