博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Dinic模板 (白书) 最大流
阅读量:7016 次
发布时间:2019-06-28

本文共 1519 字,大约阅读时间需要 5 分钟。

#include
#include
#include
#include
#include
using namespace std;const int maxn=1e3+10,INF=1e8;struct Edge{ int from,to,cap,flow; Edge(int u,int v,int c,int f):from(u),to(v),cap(c),flow(f){}};struct Dinic{ int n,m,s,t; vector
G[maxn]; vector
edges; bool vis[maxn]; int d[maxn],cur[maxn]; void init(int n){ this->n=n; for(int i=0;i<=n;i++)G[i].clear(); edges.clear(); } void AddEdge(int from,int to,int cap){ edges.push_back(Edge(from,to,cap,0)); edges.push_back(Edge(to,from,0,0)); m=edges.size(); G[from].push_back(m-2); G[to].push_back(m-1); } bool bfs(){ memset(vis,false,sizeof(vis)); queue
Q; vis[s]=true; d[s]=0; Q.push(s); while(!Q.empty()){ int x=Q.front();Q.pop(); for(int i=0;i
e.flow){ vis[e.to]=1; d[e.to]=d[x]+1; Q.push(e.to); } } } return vis[t]; } int dfs(int x,int a){//a当前为止所有弧的最小残量 if(x==t || a==0)return a; int flow=0,f; for(int &i=cur[x];i
0){ e.flow+=f; edges[G[x][i]^1].flow-=f; flow+=f; a-=f; if(a==0)break; } } return flow; } int max_flow(int s,int t){ this->s=s;this->t=t; int flow=0; while(bfs()){ memset(cur,0,sizeof(cur)); flow+=dfs(s,INF); } return flow; }};Dinic solve;int main(){ int n,m; while(~scanf("%d%d",&m,&n)){ solve.init(n); while(m--){ int a,b,c; scanf("%d%d%d",&a,&b,&c); solve.AddEdge(a,b,c); } printf("%d\n",solve.max_flow(1,n)); } return 0;}/*7 61 2 101 3 102 4 42 5 83 5 94 6 105 6 10*/

 

转载于:https://www.cnblogs.com/zhizhaozhuo/p/9594212.html

你可能感兴趣的文章
vc6.0执行程序正确而debug版和release版运行错误
查看>>
淘宝褚霸谈做技术的心态
查看>>
Java Hibernate 二级缓存配置及缓存的统计策略
查看>>
【sas notes】sas9.2安装
查看>>
jsp页面修改后保存无反映,后台也没有执行到代码。
查看>>
Java 编程下泛型的内部原理
查看>>
倒排索引 - doudoubluesky的日志 - 网易博客
查看>>
Probe how does your PGA consume
查看>>
留言板历史
查看>>
运行.bat批处理,CMD窗口隐藏,并制作为EXE文件
查看>>
zoj 1642 Match for Bonus(动态规划)
查看>>
20130414_怎样让博客园首页只显示文章标题与摘要
查看>>
关于LittleSis网站数据API的简单整理
查看>>
[转]提升6种心理商数 多角度展现个人魅力
查看>>
HDU 1893 Sibonacci Numbers(斐波那契)
查看>>
tempdb相关文章
查看>>
带包头路由协议的创建过程(转帖)
查看>>
Android 左右滑屏效果
查看>>
类方法代码重构-寻找坏味道
查看>>
析构函数构造函数CPerson派生出CEmployee类
查看>>