網路流 24 題

2021-10-07 23:23:27 字數 938 閱讀 3609

(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...