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

2021-08-19 02:04:31 字數 1197 閱讀 3529

第二次世界大戰時期..

英國皇家空軍從淪陷國徵募了大量外籍飛行員。由皇家空軍派出的每一架飛機都需要配備在航行技能和語言上能互相配合的2 名飛行員,其中1 名是英國飛行員,另1名是外籍飛行員。在眾多的飛行員中,每一名外籍飛行員都可以與其他若干名英國飛行員很好地配合。如何選擇配對飛行的飛行員才能使一次派出最多的飛機。對於給定的外籍飛行員與英國飛行員的配合情況,試設計乙個演算法找出最佳飛行員配對方案,使皇家空軍一次能派出最多的飛機。

對於給定的外籍飛行員與英國飛行員的配合情況,程式設計找出乙個最佳飛行員配對方案,使皇家空軍一次能派出最多的飛機。

輸入格式:

第 1 行有 2 個正整數 m 和 n。n 是皇家空軍的飛行員總數(n<100);m 是外籍飛行員數(m<=n)。外籍飛行員編號為 1~m;英國飛行員編號為 m+1~n。

接下來每行有 2 個正整數 i 和 j,表示外籍飛行員 i 可以和英國飛行員 j 配合。最後以 2個-1 結束。

輸出格式:

最佳飛行員配對方案一次能派出的最多的飛機數 m。如果所求的最佳飛行員配對方案不存在,則輸出『no solution!』。

居然不輸出no solution!都可以ac……

這是乙個網路流的躶題。

關鍵是建圖

哪是源點,哪是匯點?

建乙個!!!

源點連線外籍,匯點連線英籍。

最大流即為答案

#include

#include

#include

#include

#define maxn 20007

using

namespace

std;

struct e

e[maxn];

int cur[maxn],dis[maxn],list[maxn],cnt=1,n,m;

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

bool bfs()}}

return0;}

int dfs(int x,int maxf)

return ret;

}void dinic()

printf("%d",ass);

return;

}int main()

// printf("%d",dinic());

dinic();

}

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

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

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

問題描述 飛行大隊有若干個來自各地的駕駛員,專門駕駛一種型號的飛機,這種飛機每架有兩個駕駛員,需乙個正駕駛員和乙個副駕駛員。由於種種原因,例如相互配合的問題,有些駕駛員不能在同一架飛機上飛行,問如何搭配駕駛員才能使出航的飛機最多。如圖,假設有10個駕駛員,如圖中的v1,v2,v10就代表達10個駕駛...

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

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