10.4 學習筆記
阿新 • • 發佈:2020-10-04
圖論
目錄Floyd求最小環
for(int k = 1; k <= n; ++k) { for(int i = 1; i < k; ++i) { for(int j = i + 1; j <= k; ++j) { res = min(res , dis[i][j] + a[i][k] + a[k][j]); } } } for(int k = 1; k <= n; ++k) { for(int i = 1; i <= n; ++i) { for(int j = 1; j <= n; ++j) { dis[i][j] = min(dis[i][j], dis[i][k] + dis[k][j]); } } }
差分約束系統
對於一個 \(n\) 個變數構成的系統,求 \(x_t - x_s\) 的最大值。
對於一個形如 \(x_i \le x_j + c\) 的形式,從 \(j\) 到 \(i\) 建一條權值為 \(c\) 的邊,求最短路。
次小生成樹
非嚴格
樹上倍增維護路徑最大邊權,列舉非樹邊。
嚴格
樹上倍增維護最大和次大邊權,列舉非樹邊。
Dilworth 定理
拓撲圖的最小鏈覆蓋等於最長反鏈,最小鏈覆蓋:用最少的鏈覆蓋所有點,使得每個點至少被覆蓋一次,最長反鏈:最大的點集,點集中任意兩個點無法互相到達。
二分圖
-
二分圖最小覆蓋等於最大匹配。
-
二分圖最大獨立點集等於總點數減去最大匹配。