最大流 Dinic模板

2021-07-04 18:15:01 字數 1013 閱讀 6715

/*

date : 2015-8-21 晚上

author : itak

motto :

今日的我要超越昨日的我,明日的我要勝過今日的我;

以創作出更好的**為目標,不斷地超越自己。

*/#include

#include

using namespace std;

///oo表示無窮大

const

int oo = 1e9+5;

///mm表示邊的最大數量,因為要雙向建邊

const

int mm = 111111;

///點的最大數量

const

int mn = 1000;

///node:節點數,src:源點,dest:匯點,edge:邊數

int node, src, dest, edge;

///ver:邊指向的結點,flow:邊的流量,next:鍊錶的下一條邊

int ver[mm], flow[mm], next[mm];

///head:節點的煉表頭,work:用於演算法中的臨時煉表頭,dis:距離

int head[mn], work[mn], dis[mn], q[mn];

///初始化

void init(int _node, int _src, int _dest)

///增加邊

void addedge(int u, int v, int c)

///廣搜計算出每個點與源點的最短距離,如果不能到達匯點說明演算法結束

bool dinic_bfs()

return0;}

///尋找可行流的增廣路演算法,按節點的距離來找,加快速度

int dinic_dfs(int u, int exp)

}return0;}

///求最大流,直到沒有可行流

int dinic_flow()

return ret;

}

最大流dinic模板

運輸問題1 輸入檔案 maxflowa.in 輸出檔案 maxflowa.out 簡單對比 時間限制 1 s 記憶體限制 128 mb 問題描述 乙個工廠每天生產若干商品,需運輸到銷售部門進行銷售。從產地到銷地要經過某些城鎮,有不同的路線可以行走,每條兩城鎮間的公路都有一定的流量限制。請你計算,在不...

最大流模板(Dinic)

和最小費用流模板對比著看 最小費用流模板 貼上最大流模板 include includeusing namespace std const int oo 1e9 oo 表示無窮大 const int mm 111111111 mm 表示邊的最大數量,記住要是原圖的兩倍,在加邊的時候都是雙向的 con...

最大流dinic模板

include include include include define inf 0x3f3f3f3f3f3f3f3f define ll long long define maxn 10005 using namespace std int n,m 點數 邊數 int sp,tp 原點 匯點 ...