傳送門:p3376 【模板】網路最大流
盯著洛谷oi爺的題解,我調了乙個三個小時後,發現加個#define int long long就過了qaq
這是在白書抄的模板
//#pragma gcc optimize(2)
#include
using
namespace std;
#define ll long long
#define int long long
#define endl "\n"
const
int max=
1e4+7;
const
unsigned ll inf=llong_max;
struct edge
;vectorg[max]
;//圖的鄰接表
int level[max]
;//頂點到源點的距離標號
int iter[max]
;//當前弧,在其之前的邊已經沒有用了
//有向圖增加一條從from到to的容量為cap的邊
void
add_edge
(int from,
int to,ll cap));
g[to]
.push_back
((edge));
}//通過bfs計算從源點出發的距離標號
void
bfs(
int s)}}
}//通過dfs尋找增廣路
intdfs
(int v,
int t,ll f)}}
return0;
}//求解從s到t的最大流
intmax_flow
(int s,ll t)
return flow;
}signed
main()
cout<<
max_flow
(s,t)
;return0;
}
看別人**自己修修改改湊合著用
//#pragma gcc optimize(2)
#include
using
namespace std;
#define ll long long
#define int long long
#define endl "\n"
const
int max=
1e4+7;
const ll inf=llong_max;
struct edgeedge[
2*max]
;int cnt=1;
int level[max]
;//頂點到源點的距離標號
int head[max]
,rad[max]
;void
add(
int u,
int v,
int w)
//有向圖增加一條從from到to的容量為cap的邊
void
add_edge
(int from,
int to,ll cap)
//通過bfs計算從源點出發的距離標號
bool
bfs(
int s,
int t)}}
return level[t]!=0
;}//通過dfs尋找增廣路
intdfs
(int v,
int t,ll flow)
}return flow-tmp;
}//求解從s到t的最大流
ll dinic
(int s,
int t)
signed
main()
cout<<
dinic
(s,t)
;return0;
}
P3376 模板 網路最大流
網路流用於解決流量問題 網路流 所有弧上流量的集合f 稱為該容量網路的乙個網路流。1 定義 帶權的有向圖g v,e 滿足以下條件,則稱為網路流圖 flow network 僅有乙個入度為0的頂點s,稱s為源點。僅有乙個出度為0的頂點t,稱t為匯點。每條邊的權值都為非負數,稱為該邊的容量,記作c i,...
P3376 模板 網路最大流
ek演算法 個人感覺沒有dinic好理解 1 edmonds karp演算法2 時間複雜度o n m m 3 include4 include5 include6 include7 include8 using namespace std 910 const int n 10005 11 const...
P3376 模板 網路最大流
如題,給出乙個網路圖,以及其源點和匯點,求出其網路最大流。輸入格式 第一行包含四個正整數n m s t,分別表示點的個數 有向邊的個數 源點序號 匯點序號。接下來m行每行包含三個正整數ui vi wi,表示第i條有向邊從ui出發,到達vi,邊權為wi 即該邊最大流量為wi 輸出格式 一行,包含乙個正...