//poj 1273 //
//網路流最大流ek演算法
// 時間複雜度上限為nm^2
#include
#include
#include
#include
using
namespace std;
#define maxn 0x7fffffff
int n, m;
int gra[
210]
[210]=
;int pre[
210]=;
int flow[
210]=;
//記錄源點到這個點的流量
queue<
int>qu;
int flowmax =0;
// 累加最大流
intread()
while
(ch <=
'9'&& ch >=
'0')
return x * w;
}int
bfs(
int s,
int t)
// 尋找增廣路
// 代價小 直接迴圈清
for(
int i =
1; i <= n; i++)
pre[s]=0
;// 考慮存在一條路重新回到s
flow[s]
= maxn;
// 便於更新增廣路上的flow
qu.push
(s);
while
(!qu.
empty()
)}}if
(pre[t]==-
1)return flow[t];}
voidek(
int s,
int t)
// 通過pre更新
int now = t;
while
(now != s)
flowmax +
= increase;}}
intmain()
ek(1, n)
;printf
("%d\n"
, flowmax);}
return0;
}
網路流最大流 EK演算法
網路流是模仿水流解決生活中類似問題的一種方法策略,來看這麼乙個問題,有乙個自來水廠s,它要向目標t提供水量,從s出發有不確定數量和方向的水管,它可能直接到達t或者經過更多的節點的中轉,目前確定的是每條水管中水流的流向是確定的 單向 且每個水管單位時間內都有屬於自己的水流量的上限 超過會爆水管 問題是...
網路流 最大流演算法之EK
首先是網路流中的一些定義 v表示整個圖中的所有結點的集合.e表示整個圖中所有邊的集合.g v,e 表示整個圖.s表示網路的源點,t表示網路的匯點.對於每條邊 u,v 有乙個容量c u,v c u,v 0 如果c u,v 0,則表示 u,v 不存在在網路中。相反,如果原網路中不存在邊 u,v 則令c ...
網路流之最大流演算法模板EK
include include include include using namespace std int maxdata 0x7fffffff int capacity 200 200 c 1000 1000 c i j 儲存初值,因為每次計算都會改變capacity i j 的值,capac...