模板練習 網路最大流

2021-07-30 21:19:53 字數 2281 閱讀 6016

原題鏈結

ford-fulkerson

從源點開始

往下搜

搜的途中

構建反向邊

正向邊容量減少

反向變容量增加

#include

#include

#include

#include

#include

#include

#include

#define max 99999999

using

namespace

std;

struct nico

;vector

map[10005];

int f,d,flow,n,m,s,t,u,v,w,used[10005];

void add(int ui,int vi,int wi)

); map[vi].push_back((nico));

}int dfs(int sr,int tr,int fl)

}

}}int maxflow(int sr,int tr)

}int main()

ans=maxflow(s,t);

printf("%d",ans);

return

0;}

ek

大體思路是廣搜

搜到每條路

記錄路徑

流量變成min(當前流量,容量)

#include

#include

#include

#include

#include

#include

#include

#define max 99999999

using

namespace

std;

struct nico

;struct maki

pre[10005];

vector

map[10005];

queue

q;int n,m,s,t,flo[10005],flow,incr;

void add(int from,int to,int val)

); map[to].push_back((nico));

}int bfs(int sr,int tr)

q.push(sr);

flo[sr]=max;

pre[sr].p=0;

while(!q.empty()) }}

if(pre[tr].p==-1) return -1;

return flo[tr];

}int maxflow(int sr,int tr)

flow+=incr;

incr=bfs(sr,tr);

}return flow;

}int main()

ans=maxflow(s,t);

printf("%d",ans);

return

0;}

dinic

多加了個深度

把上面的板子拼一拼

#include

#include

#include

#include

#include

#include

#include

#define max 99999999

using

namespace

std;

struct nico

;queue

q;vector

map[10005];

int n,m,s,t,dep[10005],flow;

void add(int from,int to,int val)

); map[to].push_back((nico));

}int bfs(int sr,int tr)}}

if(dep[t]!=-1) return dep[t];

return0;}

int dfs(int sr,int tr,int fl)

}return0;}

int dinic(int sr,int tr)

}return flow;

}int main()

ans=dinic(s,t);

printf("%d",ans);

return

0;}

模板 網路最大流 最大流

給出乙個網路圖,以及其源點和匯點,求出其網路最大流。in put role presentation inp utin put4 5 4 3 4 2 30 4 3 20 2 3 20 2 1 30 1 3 40ou tput role presentation out puto utpu t50最大...

模板 網路最大流 最大流

給出乙個網路圖,以及其源點和匯點,求出其網路最大流。in put role presentation inp utin put4 5 4 3 4 2 30 4 3 20 2 3 20 2 1 30 1 3 40ou tput role presentation out puto utpu t50最大...

模板 網路最大流

題目描述 如題,給出乙個網路圖,以及其源點和匯點,求出其網路最大流。輸入輸出格式 輸入格式 第一行包含四個正整數n m s t,分別表示點的個數 有向邊的個數 源點序號 匯點序號。接下來m行每行包含三個正整數ui vi wi,表示第i條有向邊從ui出發,到達vi,邊權為wi 即該邊最大流量為wi 輸...