【网络流基础】hdu 1532 Drainage Ditches
来源:互联网 发布:win10安装不了软件 编辑:程序博客网 时间:2024/06/05 22:52
题意:给出网络流的一些边,求节点1到节点n的最大流。
难度:0
题解:直接连边求最大流。
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define forn(i,n) for(i=0;i<(n);i++)#define for1(i,n) for(i=1;i<=(n);i++)#define forh(i,u) for(i=head[u];i!=-1;i=edge[i].next)#define inf (1<<29)const int maxn = 222 , maxm = 555;int n , m;struct Edge { int u,v,c,next;}edge[maxm];int E,head[maxn];int dist[maxn];int que[maxn];int sta[maxn];void init() { E = 0; memset(head,-1,sizeof(head));}void _add(int u,int v,int c) { edge[E].u=u;edge[E].v=v;edge[E].c=c;edge[E].next=head[u];head[u]=E++;}void addedge(int u,int v,int c) { _add(u,v,c); _add(v,u,0);}int dinic(int s,int t) { int ans = 0; while(true) { int left,right,u,v,c,i; memset(dist,-1,sizeof(dist)); left = right = 0; que[right ++] = s; dist[s] = 0; while(left < right) { u = que[left ++]; forh(i,u) { u=edge[i].u; v=edge[i].v; c=edge[i].c; if(c>0 && dist[v] == -1) { dist[v] = dist[u] + 1; que[right ++] = v; if(v == t) { left = right; break; } } } } if(dist[t] == -1) break; int top = 0; int now = s; while(true) { if(now != t) { forh(i,now) { u=edge[i].u; v=edge[i].v; c=edge[i].c; if(c > 0 && dist[u] + 1 == dist[v]) break; } if(i != -1) { sta[top ++] = i; now = edge[i].v; } else { if(top == 0) break; dist[edge[sta[--top]].v] = -1; now = edge[sta[top]].u; } } else { int flow = inf , ebreak; forn(i,top) if(flow > edge[sta[i]].c) flow = edge[sta[ebreak = i]].c; ans += flow; forn(i,top) { edge[sta[i]].c -= flow; edge[sta[i]^1].c += flow; } now = edge[sta[top = ebreak]].u; } } } return ans;}int main() { while(~scanf("%d%d",&m,&n)) { init(); while(m--) { int u , v , c; scanf("%d%d%d",&u,&v,&c); addedge(u,v,c); } int ans = dinic(1,n); printf("%d\n",ans); } return 0;}
0 0
- 【网络流基础】hdu 1532 Drainage Ditches
- HDU 1532 Drainage Ditches (最大网络流)
- HDU 1532 Drainage Ditches (最大网络流)
- hdu 1532 Drainage Ditches(最大网络流)
- Hdu 1532 Drainage Ditches【网络流】
- hdu 1532 Drainage Ditches(网络流)
- hdu 1532 最大网络流 Drainage Ditches
- HDU 1532 Drainage Ditches 网络流模板
- HDU 1532 Drainage Ditches 最大网络流
- hdu 1532 Drainage Ditches 基础最大流
- hdu Drainage Ditches(网络流)
- 【网络流第一步】Hdu 1532——Drainage Ditches
- HDU 1532 Drainage Ditches 网络流 模板题
- hdu 1532 Drainage Ditches(网络流dinic模板)
- HDU 1532 Drainage Ditches 网络流模板题(Dinic)
- HDU-1532 Drainage Ditches,人生第一道网络流!
- 网络流模板-(EdmondsKarp)-HDU-1532-Drainage Ditches
- hdu 1533 Drainage Ditches EK 网络流
- 反射机制
- 《数据结构》信管1133班和1134班同学链接
- uva 10069 Distinct Subsequences 【dp+大数】
- VMWare虚拟机下CentOS 配置网络实现远程连接,提供Web访问
- SQL——select语句的三种基本用法:连接,嵌套,exists
- 【网络流基础】hdu 1532 Drainage Ditches
- wpa_supplicant, wpa_cli用法
- Sublime Text 2搭建Go开发环境(Windows)
- js中询问是否要删除
- linux串口通信协议编程详解
- 动态规划状态压缩题解
- 在主类中调用多个类
- 建造者模式
- JAVA-IO详解