網路流24題 1 P2756 飛行員配對方案問題

2021-09-22 21:16:53 字數 1383 閱讀 3444

題意:求乙個最大的二分匹配,網路流最大流,自己造乙個源點乙個匯點,源點0到1~m流為1,m+1~n到匯點n+1流為1,然後就是題目給出的也是流為1,圖就是這樣的,套dinic乙個板子,但是題意要輸出路徑方案,就是遍歷一邊所有的邊,因為一開始的流都是1,跑完的話用到的邊的流就為0了,所以只需要再次判斷一下邊的流為0,輸出即可

ac**:

#include#include#include#include#include#include#include#include#include#include#define myself i,l,r

#define lson i<<1

#define rson i<<1|1

#define lson i<<1,l,mid

#define rson i<<1|1,mid+1,r

#define half (l+r)/2

#define inff 0x3f3f3f3f

#define lowbit(x) x&(-x)

#define pi 3.14159265358979323846

#define min4(a,b,c,d) min(min(a,b),min(c,d))

#define min3(x,y,z) min(min(x,y),min(y,z))

#define pii make_pair

#define pr pairconst int dir[4][2]=;

typedef long long ll;

const ll inff=9223372036854775807;

typedef unsigned long long ull;

using namespace std;

const int maxm=10005;

const int maxn=105;

int cur[maxn],d[maxn];

int head[maxn],sign;

int n,m;

struct node

edge[maxm<<1];

void init()

void add(int u,int v,int val)

; head[u]=sign++;

}int bfs(int st,int ed)}}

if(d[ed]==0) return false;

return true;

}int dfs(int u,int ed,int low)}}

return low-temp;

}int main()

if(ans==0) puts("no solution!");

else}}

}return 0;

}

網路流24題 P2756 飛行員配對方案問題

問題模型 二分圖最大匹配 轉化模型 網路最大流 這題我們用網路流來做。因為有多個飛行員,且是有向無環圖,所以我們建立超級源點和超級匯點,這樣才能用網路流去做。將超級源點與外籍飛行員1 11 m mm連流量為1 11的邊,將英國飛行員m 1 m 1m 1到n mn m n m與超級匯點連流量為1 11...

P2756 飛行員配對方案問題 網路流24題

p2756 飛行員配對方案問題 第二次世界大戰期間,英國皇家空軍從淪陷國徵募了大量外籍飛行員。由皇家空軍派出的每一架飛機都需要配備在航行技能和語言上能互相配合的兩名飛行員,其中一名是英國飛行員,另一名是外籍飛行員。在眾多的飛行員中,每一名外籍飛行員都可以與其他若干名英國飛行員很好地配合。題目描述 一...

網路流24題 搭配飛行員

題目 洛谷p2756 tips 兩處的輸出格式不同,提交時注意輸出格式233 解法題目其實是一道二分圖匹配 匈牙利水過 考慮網路流建模。建立兩點超源 s s 超匯t role presentation style position relative t t,對於搭配,若 u u 與v role pr...