網路流24題 搭配飛行員

2021-08-22 15:21:17 字數 1495 閱讀 2455

題目

洛谷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

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