(1)搭配飛行員
題意
n個飛行員,其中有m名飛行員是正駕駛員。
飛機每架有兩個駕駛員,需乙個正駕駛員和乙個副駕駛員。由於種種原因,例如相互配合的問題,有些駕駛員不能在同一架飛機上飛行,問如何搭配駕駛員才能使出航的飛機最多。
思路
裸二分圖匹配(最大流)題
版本一:網路流做法
引入源點s = 0以及匯點t = n + 1,所有邊權設定為1。
上板子跑最大流
網路流版**
版本二:二分圖匹配(匈牙利)做法
匈牙利版本
(2)最小路徑覆蓋
題意
最小路徑覆蓋,並輸出對應路徑
思路
若存在路徑u->v->w**u被分成u』和u"
v被分成v』和v"
w被分成w』和w"
那麼:match[u』] = v";
match[v』] = w";
match[w』] = -1;
ac**
(3)太空飛行計畫
題意
簡單來說,求乙個有向無環圖的最大權閉合圖,並輸出閉合圖的點集以及對應權值。
思路
求最大權閉合圖的參考部落格
由部落格知,最大權閉合圖為s-t最小割對應的集合(包含s的)。
其最大權的權值=s出邊的權值和-最小割
直接套最大流模板,再手寫乙個遍歷最大權閉合圖(dfs)
小細節,對於m行的讀入,可以使用getchar()==』 』ac**
網路流24題
學會網路流演算法後,我們要做的就是把問題轉化成網路流問題。求二分圖最大匹配。網路流建模要找到問題的關鍵特點,用連邊,流量 以及費用 把原問題轉化成網路流問題,包括最大流,最小割,費用流。二分圖最大匹配的特點是每個點最多屬於一條匹配邊。這相當於是說,每個點只能流過一次。要求的是最大匹配,可以得出建模為...
網路流24題
經典問題,做了一部分 太水的就不記錄了 最大流是對於一種完整的匹配的處理,一條路乙個貢獻。要求匹配盡可能多。費用流是對於乙個路徑的最值的處理,每條邊自己的費用。再匹配最多前提下,匹配的費用達到最值。難點就是對於條件狀態的設計 網路流24題 餐巾計畫問題 費用流建模 考慮每天一定有ri條髒毛巾,所以髒...
網路流24題
按馬的軌跡連邊,最後是一張二分圖,求最大匹配。可以跑匈牙利直接求出來,也可以連源點和匯點跑dinic。我是學二分圖的時候寫的,當時寫的是匈牙利。我當時碼風好奇怪 1 include 2 define id x,y x 1 n y 3 define new p p tmp ecnt 45 struct...