POJ 2112 最大流 最短路

2021-09-19 02:59:34 字數 922 閱讀 6818

poj 2112 最大流 最短路

題意:給定k個**器和c頭奶牛,每個**器每天最多擠m頭奶牛;**器和奶牛稱為「實物」,再給每個實物之間的距離。問擠完所有奶牛,奶牛所需走最短的距離。

分析:用floyd求出「實物」之間的最短距離,求最大流,二分找最短距離。

#include #include #include using namespace std;

const int n = 250;

int k, c, n, m, cnt, st, ed;

struct nodeedge[n * n];

int e[n][n], fir[n], deep[n];

inline void add(int u, int v, int w); fir[u] = cnt;

edge[++cnt] = (node); fir[v] = cnt;

}inline int bfs()}}

return deep[ed];

}inline int dfs(int u, int fl)

}if(!f) deep[u] = -2;

return f;

}inline int dinic()

}return ans;

}inline void floyd()}}

}}inline void built(int mid)

}}int main()

}floyd();

int l = 0, r = 0x3f3f3f3f;

st = 0, ed = n + 1;

while(l <= r)

printf("%d\n", r + 1);

}return 0;

}

posted on 2019-02-25 16:47收藏

poj 2112 最大流 二分

題意 有k臺擠奶機,c頭奶牛,給出這k c個實體間的距離,求出每頭奶牛都到一台擠奶機去,怎麼分配使奶牛走的最大距離最小。用二分列舉最大距離,include include define n 500 define inf 0x3fffffff int map n n dis n gap n head ...

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求最短路,再二分最長路即可 不連大於二分值的路徑,連小於等於二分值的路徑,做最大流就好了 ...