上下界可行流
考慮把每條邊必須經過的流量拆出來,那麼就變成了某些邊必須滿流,求一組可行流。我們把必須滿流的邊拉出來,假想乙個源匯 s,t,每條邊起點連向 s,t 連向終點,跑 s 到 t 的最大流,若拉出來的邊滿流就找到了一組可行流。如果本來就有源匯,那麼從 t 向 s 連流量正無窮的邊,就轉成無源匯網路流了。
上下界最大流
先求出乙個可行流,把連向超級源匯的邊刪掉,再從 s 到 t 求殘餘網路最大流。
上下界最小流
拆滿流邊後,先不加 t 到 s 流量正無窮的邊,跑出乙個最大流,再加上 t 到 s 的邊跑最大流,t 到 s 這條邊的流量就是最小流。感性理解一下,加 t 到 s 邊之前跑最大流會盡可能填滿環流。
例題:luogu清理雪道
zjoi2011 最小割(最小割樹)
每次隨便選擇兩個點,用邊權為他們之間的最小割的邊把他們連起來,再把點集按照最小割的劃分分成兩個部分,每個部分遞迴進行。這樣會形成一棵樹的結構,兩個點的最小割就是樹上兩點間的最小邊權。這道題是模板。
#include#include#include#include#include#include#define ll long long
using namespace std;
struct edgeed[6010];
const int inf=2e9;
int head[151],sz,deep[151],ans[151][151],p[151],q[151],node[151],s,t,vis[151],n,m;
inline void add_edge(int from,int to,int flow)
inline int read()
bool bfs()}}
return false;
}int dfs(int u,int come)
}if(rest) deep[u]=-1;
return come-rest;
}int dinic()
void cut(int u)
}void solve(int l,int r)
}int s=0,t=0;
for(int i=l;i<=r;i++)
int k=l-1;
for(int i=1;i<=s;i++) node[++k]=p[i];
for(int i=1;i<=t;i++) node[++k]=q[i];
solve(l,l+s-1);
solve(l+s,r);
}void init()
int main()
for(int i=1;i<=n;i++) node[i]=i;
solve(1,n);
int mm=read();
for(int i=1;i<=mm;i++)
ed[m<<1];
int n,m,s,t,sz=1,head[n],vis[n],tim,deep[n],q[n],low[n],dfn[n],st[n],top,inst[n],scc,bel[n],u[m],v[m],ind[m];
void add_edge(int from,int to,int flow)
int read()
bool bfs()}}
return false;
}int dfs(int u,int come)
}if(rest) deep[u]=-1;
return come-rest;
}void tarjan(int u)
else if(inst[v]) low[u]=min(low[u],dfn[v]);
}if(low[u]==dfn[u])
}}int main()
while(bfs()) dfs(s,1e9);
tim=0;
for(int i=1;i<=n;i++) if(!dfn[i]) tarjan(i);
for(int i=1;i<=m;i++)
else puts("0 0");
}return 0;
}
一些構造 網路流總結
今天學的網路流,總的感覺來說稍難,不管是理解還是什麼,但是理解了後,就變得簡單許多。ford fulkerson演算法 是來求最大流量問題,從源點出發,到匯點,到底能多少能流入匯點。演算法 1 從源點出發,找相鄰邊,如果相鄰邊未被找過並且還可以流入流量就dfs。2 更新流入的邊。3 重複操作,直到沒...
網路流總結
今天做了一天的網路流,也發現了很多有趣 有毒 的建圖方法,也算是收穫很多了,這裡就做個總結吧。網路流跑的方法大家都會我就不說了,題考察的重點也就是建圖。建圖就涉及到2個方面 1.建點。建點其實就是網路流的難點了,一般點弄好了邊也容易了。建點的困難就在於有時要拆點,我總結了一下拆點主要是這幾個作用 a...
網路流總結
1.hdu1532 給網路圖,求1 n的最大流.注意邊數 2 2.hdu3572 經典建圖模型,有些東西能轉換為容量考慮 網路流演算法.dinic學了乙個多路增廣優化,能少一次遞迴的時間 1.hdu1533 建圖方式,假設有cntm個人,cnth個房子,分別對應編號 1,cntm cntm 1,cn...