這道題很值得反思,弄了一下午,交上去先是一直編譯錯誤,而在本地執行沒有問題,
原因可能是oj的編譯器版本老舊不支援這樣的寫法
g[from].push_back((edge));
g[to].push_back((edge));
這兩句交上去是不能通過的,不知道網上很多人這樣子貼出**是怎樣通過的(『白書』的模板有問題的)
如果是照著『白書』直接敲上去沒有提交試試的話就太不應該了
正確的寫法:
struct edge edge1= ;
g[from].push_back(edge1);
struct edge edge2=;
g[to].push_back(edge2);
解決了這個問題以後就開始一直wa
原因:雖然記得給陣列memset了,但是vector忘記初始化,使得後面的結果出錯
這些教訓要接受
#include #includeview code#include
#include
#define maxn 205
#define oo 0x3f3f3f3f
using
namespace
std;
struct
edge
;vector
g[maxn];
int level[maxn];//
頂點到源點的距離編號
int iter[maxn];//
當前弧,在其之前的邊不用再考慮
void add_edge(int
from,int to,int cap)//
增加s->t容量cap的邊
; g[
from
].push_back(edge1);
struct edge edge2=;
g[to].push_back(edge2);}//
bfs用來計算從源點出發所有點的距離編號
void bfs(int
s) }
}}//
通過dfs尋找當前的最短的增廣路
int dfs(int v, int t, int
f) }
}return0;
}int max_flow(int s, int
t) }
}void
init()
}int
main()
cout
<1,m)<
}return0;
}
POJ 1273 模板網路流
drainage ditches 標準的是edmonds karp 最短增廣路演算法 網路流講解 include include include include include includeusing namespace std define rep i,a,b for int i a i b i...
POJ 1273 樸素的最大流
poj 1273 ditch mike w 2011 10 5 今天我才發現,我對殘餘網路理解有誤!include include include include ifndef true define true 1 endif define size 222 define qsize 2 size ...
poj 1273 最大流 EK演算法
最大流問題 從源點到終點運送貨物,經過一些中轉站,中轉站之間有路徑連線,每條路徑有運送貨物量的上限,求最多能運送多少貨物 找最大流就是每次找增廣路徑,並更新網路,直到找不到增廣路徑 includeusing namespace std const int max 201 const int inf ...