題目描述
如題,給出乙個網路圖,以及其源點和匯點,求出其網路最大流。
輸入格式
第一行包含四個正整數n、m、s、t,分別表示點的個數、有向邊的個數、源點序號、匯點序號。
接下來m行每行包含三個正整數ui、vi、wi,表示第i條有向邊從ui出發,到達vi,邊權為wi(即該邊最大流量為wi)
輸出格式
一行,包含乙個正整數,即為該網路的最大流。
輸入輸出樣例
輸入 #1 複製
4 5 4 3
4 2 30
4 3 20
2 3 20
2 1 30
1 3 40
輸出 #1 複製
50說明/提示
時空限制:1000ms,128m
資料規模:
對於30%的資料:n<=10,m<=25
對於70%的資料:n<=200,m<=1000
對於100%的資料:n<=10000,m<=100000
樣例說明:
題目中存在3條路徑:
4–>2–>3,該路線可通過20的流量
4–>3,可通過20的流量
4–>2–>1–>3,可通過10的流量(邊4–>2之前已經耗費了20的流量)
故流量總計20+20+10=50。輸出50。
思路:最大流模板。din
icdinic
dini
c演算法。
#include
#include
#include
#include
#define inf 0x3f3f3f3f
using
namespace std;
const
int maxn=
1e4+5;
const
int maxm=
2e5+5;
struct edge
;edge edge[maxm]
;int head[maxn]
,cur[maxn]
;int tot=1;
int depth[maxn]
;int n,m,s,t;
inline
void
addedge
(int u,
int v,
int dis)
bool
bfs()}
}return depth[t];}
intdfs
(int u,
int lim)
//當前節點 當前流量}if
(!ans)
depth[u]=0
;return ans;
}int
dinic()
intmain()
printf
("%d\n"
,dinic()
);}return0;
}
洛谷P3376 模板 網路最大流
如題,給出乙個網路圖,以及其源點和匯點,求出其網路最大流。輸入格式 第一行包含四個正整數n m s t,分別表示點的個數 有向邊的個數 源點序號 匯點序號。接下來m行每行包含三個正整數ui vi wi,表示第i條有向邊從ui出發,到達vi,邊權為wi 即該邊最大流量為wi 輸出格式 一行,包含乙個正...
洛谷 P3376 模板 網路最大流
題目傳送門 如題,給出乙個網路圖,以及其源點和匯點,求出其網路最大流。第一行包含四個正整數n m s t,分別表示點的個數 有向邊的個數 源點序號 匯點序號。接下來m行每行包含三個正整數ui vi wi,表示第i條有向邊從ui出發,到達vi,邊權為wi 即該邊最大流量為wi 一行,包含乙個正整數,即...
洛谷 P3376 模板 網路最大流
洛谷傳送門 如題,給出乙個網路圖,以及其源點和匯點,求出其網路最大流。第一行包含四個正整數 n,m,s,tn,m,s,t,分別表示點的個數 有向邊的個數 源點序號 匯點序號。接下來m行每行包含三個正整數 u i,v i,w iu i,v i,w i,表示第 ii 條有向邊從 u iu i 出發,到達...