P2756 飛行員配對方案問題(網路流入門)

2021-10-03 21:43:47 字數 1211 閱讀 3823

思路

網路流入門題,建圖,超級源點連向m個外籍飛行員,外籍飛行員連向英國飛行員,英國飛行員連向超級匯點t,邊權都為1,然後跑dinic。在增減流量的地方維護match陣列。

#include

#include

#include

#include

#include

using

namespace std;

int n,m;

int x, y;

const

int max_n =

310;

const

int max_m =

30010

;const

int inf =

0x3f3f3f3f

;struct edge e[max_m]

;int head[max_n]

, cnt =0;

int s, t;

int dis[max_n]

;int matcha[

110]

;int matchb[

110]

;void

add(

int u,

int v,

int w)

intbfs()

}}return

(dis[t]!=-

1);}

intdfs

(int u,

int flow)}if

(!flow)

break;}

}if(!flow_)dis[u]=-

1;return flow_;

}int

dinic()

return ans;

}int

main()

for(

int i =

1; i <= n; i++

)while

(scanf

("%d%d"

,&x,

&y)!=

eof)

printf

("%d\n"

,dinic()

);for(

int i =

1; i <= m; i++

)else

if(i == matcha[matchb[i]])

}return0;

}

P2756 飛行員配對方案問題

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

P2756 飛行員配對方案問題

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

p2756 飛行員配對方案問題

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