最大流EK演算法模板

2021-06-09 11:46:38 字數 560 閱讀 5924

#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[maxn];

int n,m;

int bfs(int s,int e)}}

if(!vis[e]|| e==1) //找不到完整的增廣路or源點匯點重合

return -1;

else

return flow[e];

}int ek(int s,int e)

}return maxflow;

}int main()

printf("case %d: %d\n",ca++,ek(1,n));

}return 0;

}

最大流 EK演算法

ek演算法。特別暴力 時間複雜度o v e 2 所以競賽中我們一般用效率更高的dinic演算法 ek演算法核心就是殘量網路圖,殘量指的就是每條路上剩餘的流量。不難發現,只要能在殘量網路圖上找到一條從源點到匯點的路,就能在這一條路上加流量,所加的流量就是在這條路徑上每條邊殘量取個min,一點一點的加就...

最大流 EK演算法

ek演算法是求最大流的一種容易實現 易懂的演算法。ek演算法仍然是乙個基於增廣路的演算法,思路非常簡單。每次從s嘗試找到一條到達t的路徑,路徑上最小的殘留量大於0,那麼我們就可以把這條路上的最小殘留量減去,累加到ans裡。繼續bfs直到找不到位置,此時ans就是最大流。ek增廣路演算法的時間複雜度為...

網路流之最大流演算法模板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...