學習 最小割樹

2022-09-09 23:57:30 字數 584 閱讀 8766

及時學習了一波最小割樹。

我們有乙個定理---對於n個點的一張圖,本質不同的最小割最多只有n-1種。那麼我們一定可以將原圖構成一棵樹,使得原圖中兩個點(x,y)的最小割等於這棵樹上兩點(x,y)的最小割。
構造方法:我們選取集合中的兩個點(x,y),然後跑乙個最小割後將集合劃分為x集合(x可以在殘量網路上到達),y集合(點可以在殘量網路上到達y),然後對於樹連一條邊(x,y),邊權為他們的最小割,之後遞迴x集合和y集合,直到集合只剩下1個點。時間複雜度o(n * 求最小割)

證明:可以想到樹上兩點之間最小割為他們之間最小的那條邊長度。那麼就是證明對於任意$ a\in x$ , $ b \in y $都有最小割$mincut(a,b) \le mincut(x,y) $。考慮如果存在 $mincut(a,b) \ge mincut(x,y) $,那麼意味著這不是(x,y)的最小割,因為(a,b)一定還可以通過某條殘量網路到達,所以不成立。

應用:由於這是一棵樹的結構,這意味著我們可以很方便地求出兩兩之間的最小割,樹的優秀結構保證我們可以套用一些資料結構,並以此利用來出題。

題目:1.zjoi2011最小割

2.cqoi2016不同的最小割

學習筆記 最小割樹

用於求任意兩個點的最小割 最大流 最小割樹建造方法 類似於分治 在當前點集中選擇任意兩個點作為源點 匯點,跑最小割g 兩個點之間連樹邊,邊權為g 把當前點集中和源點聯通的能到的放進乙個集合裡,與t聯通的放進另乙個集合裡。然後分治下去 注意,每次跑最小割g是在全域性跑。n次最小割 建出樹來之後,任意兩...

最小割樹 學習筆記

你最終會得到圖的一棵生成樹,然後 a,b 兩點的最小割即是生成樹上 a,b 間路徑中,權值最小的那條邊。很神奇。那你怎麼建出這個樹來呢?首先,最小割等於最大流。你需要乙個 text 模板。故此,你在當前的點集中選定隨意選定兩個點 a,b 求出它們最小割 w 生成樹上增加一條邊 a b w 此時最小割...

最小割樹 Luogu P4897 最小割樹

給定乙個nn個點mm條邊的無向連通圖,多次詢問兩點之間的最小割 兩點間的最小割是這樣定義的 原圖的每條邊有乙個割斷它的代價,你需要用最小的代價使得這兩個點不連通 輸入格式 第一行兩個數n,mn,m 接下來mm行,每行33個數u,v,wu,v,w,表示有一條連線uu與vv的無向邊,割斷它的代價為ww ...