網路流24題 搭配飛行員

2022-05-03 10:27:13 字數 1870 閱讀 8785

★★☆   輸入檔案: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

4hungary

#include#include

#define m(s) memset(s,0,sizeof s)

using

namespace

std;

const

int n=101

;int

n,m,ans,match[n];

bool

vis[n],e[n][n];

bool hungary(int

x) }

}return0;

}int

main()

printf("%d

",ans);

return0;

}

網路流之二分圖匹配(最大流)

#include#include

#include

#define r register

#define inf 0x3f3f3f3f

using

namespace

std;

intread()

while(ch>='

0'&&ch<='9')

return f?x:-x;

}const

int n=1e5+10

;int

s,t,n,m;

int head[n],dis[n],q[n*2

];struct

nodee[n

<<2];int tot=1

;void add(int x,int y,int

z);head[x]=tot;

}bool

bfs()}}

return dis[t]!=-1;}

int dfs(int now,int

f) }

return f-rest;

}int

dinic()

intmain()

網路流24題 搭配飛行員

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

網路流24題 搭配飛行員

飛行大隊有若干個來自各地的駕駛員,專門駕駛一種型號的飛機,這種飛機每架有兩個駕駛員,需乙個正駕駛員和乙個副駕駛員。由於種種原因,例如相互配合的問題,有些駕駛員不能在同一架飛機上飛行,問如何搭配駕駛員才能使出航的飛機最多。因為駕駛工作分工嚴格,兩個正駕駛員或兩個副駕駛員都不能同機飛行。input 第一...

搭配飛行員 網路流24題 1 24

搭配飛行員 題面 飛行大隊有若干個來自各地的駕駛員,專門駕駛一種型號的飛機,這種飛機每架有兩個駕駛員,需乙個正駕駛員和乙個副駕駛員。由於種種原因,例如相互配合的問題,有些駕駛員不能在同一架飛機上飛行,問如何搭配駕駛員才能使出航的飛機最多。因為駕駛工作分工嚴格,兩個正駕駛員或兩個副駕駛員都不能同機飛行...