行列木定理についての記事です. これを使う問題が,第二回日本最強プログラマー学生選手権 の G - Spanning Tree として出題されました.

定理

自己ループのない無向グラフ $G$ がある.頂点を $1, \ldots, N$ とする. 対称 $N\times N$ 行列 $A = (a_{ij})$ を,次で定める:

  • $a_{ii} = $ 頂点$i$の出次数
  • $a_{ij} = - ( i \text{と} j \text{を結ぶ辺の数} )$

このとき,A のすべての余因子は等しく,G の全域木の数と一致する.

上のグラフでは,

$$ A = \begin{bmatrix} 3 & -1 & 0 & -2 \\ -1 & 3 & -1 & -1 \\ 0 & -1 & 2 & -1 \\ -2 & -1 & -1 & 4 \end{bmatrix} $$

$(4,4)-$余因子行列は

$$ M_{4,4} = \begin{bmatrix} 3 & -1 & 0 \\ -1 & 3 & -1 \\ 0 & -1 & 2
\end{bmatrix} $$

この行列式の値 13 が,グラフの全域木の数である.