14. [網路流24題] 搭配飛行員
★★☆ 輸入檔案:flyer.in
輸出檔案:flyer.out
簡單對比
時間限制:1 s 記憶體限制:128 mb
【問題描述】
飛行大隊有若干個來自各地的駕駛員,專門駕駛一種型號的飛機,這種飛機每架有兩個駕駛員,需乙個正駕駛員和乙個副駕駛員。由於種種原因,例如相互配合的問題,有些駕駛員不能在同一架飛機上飛行,問如何搭配駕駛員才能使出航的飛機最多。
如圖,假設有10個駕駛員,如圖中的v1,v2,…,v10就代表達10個駕駛員,其中v1,v2,v3,v4,v5是正駕駛員,v6,v7,v8,v9,v10是副駕駛員。如果乙個正駕駛員和乙個副駕駛員可以同機飛行,就在代表他們兩個之間連一條線,兩個人不能同機飛行,就不連。例如v1和v7可以同機飛行,而v1和v8就不行。請搭配飛行員,使出航的飛機最多。注意:因為駕駛工作分工嚴格,兩個正駕駛員或兩個副駕駛員都不能同機飛行.
【輸入格式】
輸入檔案有若干行
第一行,兩個整數n與n1,表示共有n個飛行員(2<=n<=100),其中有n1名飛行員是正駕駛員.
下面有若干行,每行有2個數字a,b。表示正駕駛員a和副駕駛員b可以同機飛行。
注:正駕駛員的編號在前,即正駕駛員的編號小於副駕駛員的編號.
【輸出格式】
輸出檔案有一行
第一行,1個整數,表示最大起飛的飛機數。
【輸入輸出樣例】
輸入檔名: flyer.in
10 5
1 7
2 6
2 10
3 7
4 8
5 9
輸出檔名:flyer.out
4ps:在洛谷上需要輸出方案
1 #include 2 #include 3 #include 4 #include 5dinic6using
namespace
std;78
const
int maxn=10100;9
const
int inf=0x7fffffff;10
11int
n,m,src,decc;
1213 inline void read(int&x)
1819
struct
node ;
24node e[maxn];
2526
int head[maxn],cur[maxn],tot=1;27
28int
depth[maxn];
2930 queueq;
3132 inline void add(int x,int y,int
z) 38
39bool
bfs() 54}
55}56return
false;57
}5859int dfs(int now,int
flow) 72}
73if(!used) depth[now]=-1;74
return
used;75}
7677
inthh()
*/93
return0;
94}9596
int sb=hh();
97int main()
1 #include 2 #include 3匈牙利演算法4const
int maxn=110;5
6int
n,m;78
intmap[maxn][maxn],mark[maxn];910
bool
vis[maxn];
1112
bool find(int
x) 20}21
}22return
false;23
}2425int
hh()
35 printf("
%d\n
",ans);//
二分圖匹配 方案容易輸出 自己想吧
36return0;
37}3839
int sb=hh();
40int main()
14 網路流24題 搭配飛行員
輸入檔案 flyer.in輸出檔案 flyer.out簡單對比 時間限制 1 s 記憶體限制 128 mb 問題描述 飛行大隊有若干個來自各地的駕駛員,專門駕駛一種型號的飛機,這種飛機每架有兩個駕駛員,需乙個正駕駛員和乙個副駕駛員。由於種種原因,例如相互配合的問題,有些駕駛員不能在同一架飛機上飛行,...
cogs 14 網路流24題 搭配飛行員
時間限制 1 s 記憶體限制 128 mb 問題描述 飛行大隊有若干個來自各地的駕駛員,專門駕駛一種型號的飛機,這種飛機每架有兩個駕駛員,需乙個正駕駛員和乙個副駕駛員。由於種種原因,例如相互配合的問題,有些駕駛員不能在同一架飛機上飛行,問如何搭配駕駛員才能使出航的飛機最多。如圖,假設有10個駕駛員,...
網路流24題 搭配飛行員
題目 洛谷p2756 tips 兩處的輸出格式不同,提交時注意輸出格式233 解法題目其實是一道二分圖匹配 匈牙利水過 考慮網路流建模。建立兩點超源 s s 超匯t role presentation style position relative t t,對於搭配,若 u u 與v role pr...