矩陣樹定理

2022-05-06 20:06:08 字數 591 閱讀 4808

構建基爾霍夫矩陣,基爾霍夫矩陣的任意乙個代數余子式是所有生成樹的邊權積的和,也就是求的是\(\sum\limits_t\prod\limits_v_e\)

基爾霍夫矩陣為度數矩陣減去鄰接矩陣

任意去掉一行一列,所得到的矩陣的行列式即為所求

外向樹為入度矩陣減去鄰接矩陣

內向樹出度矩陣減去鄰接矩陣

刪去根所在的行和列,所得到的矩陣的行列式即為所求

構建矩陣時,一條邊對矩陣的貢獻為其邊權

轉置矩陣,行列式不變

交換兩行或兩列的位置,行列式取相反數

對一行或一列乘以某數,行列式也乘以某數

用一行的倍數減去另一行,行列式的值不變

上三角矩陣的行列式的值等於對角線的乘積

利用這些性質將矩陣消為上三角矩陣後,即可求得行列式

\(code:\)

ll det()

}ans=ans*a[i][i]%mod;

}return (ans%mod+mod)%mod;

}double det()

ans*=a[i][i];

}return ans;

}

矩陣樹定理

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 ...

矩陣樹定理

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列,它的行列式就是生成樹個數 對於有向圖,外向樹的個數就是把度數矩陣換成入度矩陣 內向樹的個數就是換成出度矩陣 刪掉的行列一定要是根 首先有三條...