給定一個度數序列\(\{d\}\),判斷是否可以根據這個度數序列構造出簡單無向圖。
Havel–Hakimi algorithm:
一個度數序列可以構成簡單無向圖,當且僅當將這個序列\(\{d\}\)降序排序之后,將\(d_1\)后面的\(d_1\)個數\(-1\),並將\(d_1\)從序列中除去,形成的新度數序列沒有負數,且新的度數序列可以構成簡單無向圖。
於是我們發現,利用這個方法遞歸地判斷,最后一定以出現負數或者全零序列結束,時間復雜度\(\Theta(n^2)\),同時我們可以根據這個算法構造出圖的鄰接矩陣。
例題:poj1659
Erdős–Gallai theorem:
一個度數序列可以構成無向圖,當且僅當將\(\{d\}\)降序排序之后:
\[\forall k\in [1,n]\ \ \ \sum_{i=1}^{k}d_i\leq k(k-1)+\sum_{i=k+1}^{n}\min(d_i,k) \]
時間復雜度\(\Theta(n)\),但是這種算法只可以進行判定,不可以構造出具體的圖。
為了方便記憶,我們可以這樣粗略地理解式子的含義:一段前綴他們的度數可以通過自己內部的\(k\)個點互相連邊和后面的\(n-k+1\)個點來貢獻。
例題:New Year and the Acquaintance Estimation
