題意:t組樣例,做點1–>n的最大流
規模:
(2 <= n <= 15, 0 <= m <= 1000)
(1 <= x, y <= n, 1 <= c <= 1000)
型別:最大流基礎,純模板
分析:第一次做網路流,在**裡加了許多注釋,邊學邊敲
時間複雜度&&優化:
樸素演算法o(fe); 。f為遍歷深度
dinic演算法o(ev*v);。這裡只寫了dinic。
**:
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
const
int max_n = 20;
const
int max_m = 20005;
const
int inf = 1000000007;
const
int mod = 1000000007;
char s[20];
int n,m;
struct edge;
vector
g[max_n];///圖的鄰接表表示
int level[max_n];///定點到源點的距離標號
int iter[max_n];///當前弧,在其之前的邊已經沒用了
///向圖中增加一條從from到to的容量為cap的邊;
void add_edge(int from,int to,int cap) );
g[to].push_back((edge));///這個-1是減上面行**的干擾
}///通過bfs計算從源點出發的距離標號
void bfs(int s)}}
//for(int z=0;z}
///通過dfs尋找增廣路,,, 從v點傳送f的流量到t,返回最大可傳送量
int dfs(int v,int t,int f)}}
return0;}
///求解從s到t的最大流
long
long max_flow(int s,int t)
}}int main()
long
long k=max_flow(0,n-1);
printf("case %d: %i64d\n",z,k);
}return
0;}
hdu3549 最大流模板題
最大流dinic演算法,套模板1a include include include include define maxn 105 using namespace std int map maxn maxn 鄰接矩陣儲存圖 int dis maxn 距離源點的距離 int q maxn maxn f...
HDU3549最大流模板學習題
前幾天比賽發現自己的最大流最小割知識忘的一干二盡竟是一朝回到解放前,於是重新學習最大流。ek演算法,其實就是bfs求增廣路,增廣條件是向前的邊或是未滿的正向邊或是大於0的反向邊,這樣每次增廣必然可以讓t節點獲得值增加 include include include include include i...
HDU 3549 網路最大流再試
同樣的網路最大流 t了好幾次原因是用了cout,改成printf就a了 還有hdu oj的編譯器也不支援以下的寫法 g from push back edge g to push back edge include include include include include include de...