poj 2112 最大流 二分

2021-06-17 21:06:56 字數 649 閱讀 2624

題意:有k臺擠奶機,c頭奶牛,給出這k+c個實體間的距離,求出每頭奶牛都到一台擠奶機去,怎麼分配使奶牛走的最大距離最小。

用二分列舉最大距離,,,,

#include#include#define n 500

#define inf 0x3fffffff

int map[n][n],dis[n],gap[n],head[n],num,n,m,d,start,end,ans;

struct edge

e[n*40];

void addedge(int x,int y,int w)

int dfs(int u,int minflow)

min_dis=min_dis>dis[v]?dis[v]:min_dis;

} }if(flow==0)

return flow;

}int isap()

{ int maxflow=0;

memset(dis,0,sizeof(dis));

memset(gap,0,sizeof(gap));

gap[0]=ans;

while(dis[start]map[i][k]+map[k][j])

map[i][j]=map[i][k]+map[k][j];

if(right

poj2112 二分最大流

題目 輸入k c m 代表有k臺機器 c頭牛 每台機器最多服務m頭牛 k臺機器編號為1 k。c頭牛編號為k 1 k c 下面是乙個 k c k c 的矩陣 map i j 代表從編號為i的實體到編號為j的實體的直接距離 問你要讓每頭牛都被機器服務 這c頭牛中 走的最遠距離的最小值 就是說這c頭牛每頭...

POJ 2112 二分 最大流

題意 有k個牛奶機跟c頭牛。他們之間有路相連,農民想讓每個牛能到其中乙個牛奶機,又想讓走路最遠的牛走得最小。題解 求最大值最小,不出意外就是二分了 由於要限制總的路徑長度,就不能對每條邊限制了,於是先floyd求最短路,再二分最長路即可 不連大於二分值的路徑,連小於等於二分值的路徑,做最大流就好了 ...

poj2112二分 最大流

跟上題一樣,因為一開始那份模板用的少,總懷疑那份sap模板出錯了,今天換了乙個模板做另外一題很像的題。先前的模板不能處理過大的數 事實證明我過程中處理錯了,好吧,先放著,校賽完在來找錯了。最後在錯誤在建圖的過程中,嚴格建圖過程,因為增加了牛與牛和機器與機器的距離,導致求最大流結果時出錯。includ...