最大網路流,需要的準備是:bfs,ek演算法
用pre陣列記錄前驅節點,用vis判斷是否訪問過
用g二維陣列表示殘餘網路,用f二維陣列表示實際流網路
下面這篇部落格詳細介紹了最大網路流:既然已經有了輪子,那我就不造了
下面是我的**
#include#include#include
#include
using
namespace
std;
const
int maxn=100
;const
int inf=9999999
;int g[maxn][maxn];//
殘餘網路,初始值為最大流量
int f[maxn][maxn];//
實流網路,初始值都是零
int pre[maxn];//
儲存前驅節點
bool vis[maxn];//
判斷是否訪問過
intn,m;
bool bfs(int s,int
t) }
}return
false;}
int ek(int s,int
t) maxflow+=d;
v=t;
while(v!=s)
}return
maxflow;
}int
main()
cout
<1,n)
}
最大網路流
求網路流有很多演算法,這幾天學習了兩種,記錄一下ek演算法。首先是網路流中的一些定義 v表示整個圖中的所有結點的集合.e表示整個圖中所有邊的集合.g v,e 表示整個圖.s表示網路的源點,t表示網路的匯點.對於每條邊 u,v 有乙個容量c u,v c u,v 0 如果c u,v 0,則表示 u,v ...
最大網路流
1 基本概念和術語 1 網路 g 是乙個簡單有向圖,g v,e v 在 v 中指定乙個頂點 s 稱為源 和另乙個頂點 t 稱為匯 有向圖 g 的每一條邊 v,w e 對應有乙個值 cap v,w 0 稱為邊的容量 這樣的有向圖 g 稱作乙個網路 2 網路流 網路上的流 是定義在網路的邊集合 e 上的...
最大網路流
圖中有兩個點源結點s和匯點t。源結點是網路流的起點,匯點是流的終點 給定乙個流網路g 乙個源結點s 乙個匯點t,找到值最大的乙個流 定義 出發點為源點,接受流量 的匯聚點為匯點,邊上的權值為可以流過的最大值 殘存網路gf 由仍可以對流量進行增加 減少的邊構成 流過的量不超過容量的邊 包含原圖中的邊,...