矩陣樹定理
阿新 • • 發佈:2018-09-20
逆元 tro 其他 常數 sdn tps tree blog 鄰接
引用:https://blog.csdn.net/Marco_L_T/article/details/72888138
1、無向圖
一個圖的鄰接矩陣G:對於無向圖的邊(u,v),G[u][v]++,G[v][u]++
一個圖的度數矩陣D:對於無向圖的邊(u,v),D[u][u]++,D[v][v]++;
而通過這兩個矩陣就可以構造出圖G的基爾霍夫矩陣:C=D-G.
Matrix Tree定理:將圖G的基爾霍夫矩陣去掉第i行和第i列(i可以取任意值,可以證明所得到的結果相同),得到(n-1)*(n-1)的矩陣,
對這個矩陣進行行列式的值求解,abs(det(A))即為圖G的生成樹個數。
求解矩陣行列式的時候,計算常數k時為了避免精度丟失,可以通過計算逆元進行求解(不需要取模時,mod一個大質數即可).
2、有向圖
樹形圖:以i點為根節點的樹形圖有(n-1)條邊,從i節點出發可以到達其他所有(n-1)個節點.
定義: 有向圖的鄰接矩陣G:對於有向圖的邊(u,v),G[u][v]++.
有向圖的度數矩陣D:對於有向圖的邊(u,v),D[v][v]++.
尤其需要註意的是:有向圖的度數矩陣指的是一個點的入度,而不是出度。
而有向圖的基爾霍夫矩陣的構造方式是一模一樣的:C=D-G.
有向圖Matrix Tree定理:
將有向圖G的基爾霍夫矩陣去掉第i行和第i列,得到(n-1)*(n-1)的矩陣,
對這個矩陣進行行列式的值求解,abs(det(A))就是以i為根的樹形圖的個數。
矩陣樹定理