先貼題面
★★☆ 輸入檔案:講真確實是水題w簡單的二分圖最大匹配,可以轉化為網路流來做.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
4
首先建立超級源點$s$和$t$(編號$0$和$v+1$),從超級源點向所有正飛行員連一條容量為1的邊,然後對於所有可能的匹配連一條從正飛行員到副飛行員的邊,最後將所有副飛行員連線到超級匯點再跑一遍最大流就得了...
過於蒟蒻的我居然腦抽一開始覺得超級源點和超級匯點要連容量為inf的邊...
好了**時間
github
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7backup8const
int maxe=10010;9
const
int maxv=110;10
const
int inf=0x7fffffff;11
12struct
edge;
19edge e[maxe];
20 edge*head[maxv];
21 edge* top=e;
2223
intv,n;
24int
depth[maxv];
2526
bool bfs(int,int
);27
int dinic(int,int
);28
int dfs(int,int,int
);29
void insert(int,int,int
);30
31int
main()
39for(int i=1;i<=n;i++)
42for(int i=n+1;i<=v;i++)
45 printf("
%d\n
",dinic(0,v+1
));46
return0;
47}4849
int dinic(int s,int
t)54
return
ans;55}
5657 inline void insert(int a,int b,int
f)73
74bool bfs(int s,int
t)89}90
}91return
false;92
}9394int dfs(int root,int flow,int
t)106 i->flow-=k;
107 i->rev->flow+=k;
108 tmp-=k;
109if(tmp==0
)110
break
;111
}112
}113
return flow-tmp;
114 }
以及圖包w
COGS461 網路流24題 餐巾
問題描述 乙個餐廳在相繼的n天裡,第i天需要ri塊餐巾 i l,2,n 餐廳可以從三種途徑獲得餐巾。1 購買新的餐巾,每塊需p分 2 把用過的餐巾送到快洗部,洗一塊需m天,費用需f分 f 3 把餐巾送到慢洗部,洗一塊需n天 n m 費用需s分 s在每天結束時,餐廳必須決定多少塊用過的餐巾送到快洗部,...
Cogs 729 網路流24題 圓桌聚餐
網路流24題 圓桌聚餐 輸入檔案 roundtable.in 輸出檔案 roundtable.out 評測外掛程式 時間限制 1 s 記憶體限制 128 mb 問題描述 假設有來自m 個不同單位的代表參加一次國際會議。每個單位的代表數分別為 ri i 1,2,3 m 會議餐廳共有n張餐桌,每張餐桌可...
COGS746 網路流24題 騎士共存
騎士共存問題 問題描述 在乙個n n個方格的西洋棋棋盤上,馬 騎士 可以攻擊的棋盤方格如圖所示。棋盤 上某些方格設定了障礙,騎士不得進入。程式設計任務 對於給定的n n個方格的西洋棋棋盤和障礙標誌,計算棋盤上最多可以放置多少個騎 士,使得它們彼此互不攻擊。資料輸入 由檔案knight.in給出輸入資...