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

2021-08-25 16:41:10 字數 912 閱讀 5075

luogu 2756

給出n個英國飛行員和m個外籍飛行員,給出每個英國飛行員能配合的外籍飛行員編號,求最多可以選出多少對能互相配合的飛行員

最經典的二分圖匹配問題。其實用匈牙利演算法更合適,在時間複雜度上會更加優秀。用網路流來做的話,超級源點向每個英國飛行員連流量為1的邊,每個英國飛行員向能配合的外籍飛行員連流量為1的邊,每個外籍飛行員向超級匯點連一條流量為1的邊,這樣保證每個人僅會被選一次。跑一邊最大流即可。

最好不用該**當板子......

#include#include#include#define maxn 20000+30

#define inf 0x3fffffff

using namespace std;

int m,n,k,du[maxn],dis[maxn],dl[23333];

vector f[maxn],fb[maxn],flow[maxn];

int cur[maxn];

int a[30][30];

int load[30],num[30];

void add(int x,int y,int z)

bool bfs(int begin,int end)

}while(t0) return true;

else return false;

}int find(int x,int mflow,int y)

} return 0;

}int solve(int x,int y)

return ans;

}int s,t;

int main()

printf("%d\n",solve(s,t));

for(int i=1;i<=n;i++) }

return 0;

}

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

網路流24題 搭配飛行員 輸入檔案 flyer.in 輸出檔案 flyer.out 簡單對比 時間限制 1 s 記憶體限制 128 mb 問題描述 飛行大隊有若干個來自各地的駕駛員,專門駕駛一種型號的飛機,這種飛機每架有兩個駕駛員,需乙個正駕駛員和乙個副駕駛員。由於種種原因,例如相互配合的問題,有些...

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

原題目有special judge所以我將題目去掉special judge之後如下 問題描述 第二次世界大戰時期,英國皇家空軍從淪陷國徵募了大量外籍飛行員。由皇家空軍派出 的每一架飛機都需要配備在航行技能和語言上能互相配合的 2 名飛行員,其中 1 名是英國飛 行員,另 1 名是外籍飛行員。在眾多...

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

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