網路流之最大流演算法模板EK

2021-07-09 09:17:55 字數 797 閱讀 2855

#include

#include

#include

#include

using namespace std;

int maxdata=0x7fffffff;

int capacity[200][200],c[1000][1000];//c[i][j]儲存初值,因為每次計算都會改變capacity[i][j]的值,capacity[i][j]表示殘留網路的容量

int flow[200];//標記從源點到當前點實際還有多少容量可用

int pre[200];//標記在這條路徑上當前節點的前驅,同時標記該節點是否在佇列中

int x[1000],y[10000],len[10000];//x,y,len儲存每條邊的資訊

int n,m,p; //n 表示邊數,m表示節點數,p表示運算元

queuemyqueue;

int bfs(int src,int des) }}

if (pre[des]==-1)

return -1;

else

return flow[des];

}int maxflow(int src,int des)//src表示源點,des表示匯點

sumflow+=increasement;

}return sumflow;

}int main()

scanf("%d",&p);

for (l=1;l<=p;l++)

}}//如果把網路流的圖看作一系列的管道,那麼求最大流就相當於從源點處注水,求最多最終有多少水可以流到匯點

網路流最大流 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 ek 演算法。時間複雜度 ve 2 include includeusing namespace std const int maxn 100 const int inf 1 30 1 int g maxn maxn int flow maxn pre maxn bool vis m...