P3376 模板 網路最大流Dinci

2021-10-24 23:07:30 字數 1971 閱讀 1065

傳送門: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 輸出格式 一行,包含乙個正...