BEST 定理:計算有向圖的尤拉回路數量
尤拉圖 \(G\) 的尤拉回路個數為 \(T_s(G)\prod(out_i-1)!\),其中 \(T_s(G)\) 代表以 \(s\) 為根的內向樹個數,\(out_i\) 代表點 \(i\) 的出度。同時由此可見,對於一個尤拉圖,其任意一個點為根的內向樹個數相同。
證明:
除去點 \(s\),考慮其它點在尤拉回路上的最後一條出邊 \(e\),它們一定形成一棵以 \(s\) 為根的內向樹,因為如果有環,那麼顯然與所有邊都最後一次出現矛盾。然後將所有點其餘的出邊按隨意順序排列,方案數為 \(out_s!\prod\limits_{i\neq s}(out_i-1)!\),發現每種排法可以唯一對應一種尤拉回路,每種尤拉回路也能唯一找到一棵這樣的生成樹。但是注意這樣的排法中每 \(out_s\) 條路徑是迴圈同構的,要除掉,於是答案即為 \(T_s(G)\prod(out_i-1)!\)。
矩陣樹定理的證明
這裡只寫有向圖內向樹的證明,其餘兩者類似。
寫一下式子:\(\sum\limits_{p}(-1)^{\tau(p)}\sum\limits a_{i,p_i}\)。
考慮組合意義:對於一個排列 \(p\),如果 \(i\neq p_i\),那麼視為選擇了一條 \(i\rightarrow p_i\) 的一條一類邊,係數為 \(-1\);否則視為選擇了任意一條 \(i\rightarrow j\) 的邊,係數為 \(1\)(由於有 \(deg_i\) 種方案所以符合式子)。
可以發現所有 \(-1\) 邊形成若干個環,所有 \(1\) 邊形成若干個環和一棵以 \(1\) 為根的內向樹。
我們不希望圖中能存在環,於是考慮將某個 \(-1\) 環的貢獻和對應的 \(1\) 環的貢獻抵消掉。設其環長為 \(l\),則給它一個 \((-1)^{(l-1)}\) 的係數,發現就能順利抵消了。
於是我們只需要證明:所有非自環的 \((l-1)\) 之和的奇偶性與 \(\tau(p)\) 的奇偶性相同。
注意對於一個環,交換任意兩個元素後變成兩個環,\(\sum(l-1)\) 減少 \(1\);對於排列,交換任意兩個數後逆序對的奇偶性改變。
於是可以一直交換,直到最後變成環都是自環,排列為 \(1\sim n\),得證。