最大流的應用實在是太廣泛了
幾個比較有用的定理:
最大流=最小割
二分圖最大匹配=二分圖最小點覆蓋(最大流)
二分圖的匹配直接用最大流好了。
下面是個很喜歡的dinic模板,順便用這個版過掉poj3041
#include using namespace std;
const int maxn=150000;
const int maxm=2000000;
const int inf=1<<30;
struct edgee[maxm];;
int v[maxn], que[maxn], dis[maxn],len;
void init()
void insert(int from, int to, int va)
int dinic(int n, int s, int t)
}id = e[id].next;}}
if (dis[t] == -1) break;
id = s, tail = 0;
while(true)
for(i = 0; i < tail; i++)
e[que[i]].val -= flow, e[que[i] ^ 1].val += flow;
ans += flow; tail = fir; id = e[que[fir]].from;
}id = v[id];
while(id != -1)
if (id != -1)
else}}
return ans;
}int main()
{ int t,n,m,a,b,c,cas,i,j;
// while (scanf("%d",&t)!=eof)
// {
// cas = 0;
// while (t--)
// {
init();
cin>>n>>m;//依次是點的個數 邊的條數
while (m--)
{// cout<
最大流dinic模板
運輸問題1 輸入檔案 maxflowa.in 輸出檔案 maxflowa.out 簡單對比 時間限制 1 s 記憶體限制 128 mb 問題描述 乙個工廠每天生產若干商品,需運輸到銷售部門進行銷售。從產地到銷地要經過某些城鎮,有不同的路線可以行走,每條兩城鎮間的公路都有一定的流量限制。請你計算,在不...
最大流 Dinic模板
date 2015 8 21 晚上 author itak motto 今日的我要超越昨日的我,明日的我要勝過今日的我 以創作出更好的 為目標,不斷地超越自己。include include using namespace std oo表示無窮大 const int oo 1e9 5 mm表示邊的最...
最大流模板(Dinic)
和最小費用流模板對比著看 最小費用流模板 貼上最大流模板 include includeusing namespace std const int oo 1e9 oo 表示無窮大 const int mm 111111111 mm 表示邊的最大數量,記住要是原圖的兩倍,在加邊的時候都是雙向的 con...