網路流 搭配飛行員題解

2022-05-01 03:21:09 字數 2188 閱讀 8766

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

4solution:

每個主飛行員只能和特定副飛行員一起,所以他們之間有一條邊,並且每個主飛行員只能使用一次,副飛行員也只能使用一次,所以建圖應為s和主飛行員連一條邊,容量為1,;t和副飛行員連邊,容量為1,;每個可以一起的主、副飛行員之間連邊,因為前兩種邊已經限制,所以主、副飛行員之間邊的容量大於0即可。

建完圖盤最大流即可。

1 #include2 #include3 #include4

using

namespace

std;

5#define min(a,b) ((a)

6#define qq 1e9

7int

read()

14 ch=getchar();15}

16while(ch>='

0'&&ch<='9'

) 20

return s*f;21}

22int n,r[105],tot,deep[105

],s,t;

23int head,tail,queue[105

];24

struct

oo c[10005

];27

void add(int x,int y,int

z) 33

bool bfs(int s,int

t) 47}48

}49}50

return0;

51}52int dfs(int opt,int

fw)

56int tmp=fw,k;

57for(int i=r[opt]; ~i; i=c[i].next)

64 c[i].vv-=k;

65 c[i^1].vv+=k;

66 tmp-=k;67}

68}69return fw-tmp;70}

71int dicnic(int s,int

t)76

return

ans;77}

78int

n1;79

intmain()

90for(int i=n1+1;i<=n;i++)

94while(scanf("

%d%d

",&a,&b)==2)98

int ans=dicnic(s,t);

99 printf("

%d\n

",ans);

100return0;

101}

102int hehe=main();

103int

main()

網路流24題 搭配飛行員

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

網路流24題 搭配飛行員

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

網路流24題 搭配飛行員

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