題目
洛谷p2756
(tips:兩處的輸出格式不同,提交時注意輸出格式233)
解法題目其實是一道二分圖匹配(匈牙利水過),考慮網路流建模。
建立兩點超源
s s
,超匯t' role="presentation" style="position: relative;">t
t,對於搭配,若
u u
與v' role="presentation" style="position: relative;">v
v可匹配,則在圖中連邊(u
,v,c
apac
ity=
1)( u,
v,ca
paci
ty=1
)。從超源向
1 1
~ m' role="presentation" style="position: relative;">m
m每一點連邊(s
,i,c
apac
ity=
1)( s,
i,ca
paci
ty=1
),同理從(m
+1) (m+
1)
~ n n
每一點向超匯連邊(i
,t,c
apac
ity=
1)' role="presentation" style="position: relative;">(i,
t,ca
paci
ty=1
)(i,
t,ca
paci
ty=1
),完成建模。
接著最大流帶走。
洛谷ac**:
#include
#include
#include
#include
#include
using
namespace
std;
struct edge
edge(int w,int d):v(w),c(d){}
};int n,m,x,y,ans,d[103],s,t,p[103];
vector
vec;
vector
point[103];
void addedge(int x,int y,int c)
bool bfs()
}return d[t];
}int dfs(int u,int f)
}return0;}
int main()
t=(s=n+1)+1;for(int i=1;i<=m;++i)addedge(s,i,1);for(int i=m+1;i<=n;++i)addedge(i,t,1);
while(bfs())
printf("%d\n",ans);for(int i=0;i2)
}
網路流24題 搭配飛行員
飛行大隊有若干個來自各地的駕駛員,專門駕駛一種型號的飛機,這種飛機每架有兩個駕駛員,需乙個正駕駛員和乙個副駕駛員。由於種種原因,例如相互配合的問題,有些駕駛員不能在同一架飛機上飛行,問如何搭配駕駛員才能使出航的飛機最多。因為駕駛工作分工嚴格,兩個正駕駛員或兩個副駕駛員都不能同機飛行。input 第一...
網路流24題 搭配飛行員
輸入檔案 flyer.in輸出檔案 flyer.out簡單對比 時間限制 1 s 記憶體限制 128 mb 問題描述 飛行大隊有若干個來自各地的駕駛員,專門駕駛一種型號的飛機,這種飛機每架有兩個駕駛員,需乙個正駕駛員和乙個副駕駛員。由於種種原因,例如相互配合的問題,有些駕駛員不能在同一架飛機上飛行,...
搭配飛行員 網路流24題 1 24
搭配飛行員 題面 飛行大隊有若干個來自各地的駕駛員,專門駕駛一種型號的飛機,這種飛機每架有兩個駕駛員,需乙個正駕駛員和乙個副駕駛員。由於種種原因,例如相互配合的問題,有些駕駛員不能在同一架飛機上飛行,問如何搭配駕駛員才能使出航的飛機最多。因為駕駛工作分工嚴格,兩個正駕駛員或兩個副駕駛員都不能同機飛行...