USACO 4.2.1 网络流 Dinic
2016-02-16 00:42
405 查看
/* ID: shenxyy1 PROG: ditch LANG: C++ */ #include<stdio.h> #include<stdlib.h> #include<string.h> #include<iostream> #include<algorithm> #define max(x,y) ((x)>(y)?(x):(y)) #define min(x,y) ((x)<(y)?(x):(y)) #define For(i,j,k) for (i=j;i<=k;i++) using namespace std; const int dmax=1010,INF=1000000000; int a[dmax][dmax],q[dmax*dmax],d[dmax*dmax],m,n; bool bfs(){ int f=0,l=1,i,j,k; memset(d,-1,sizeof(d)); q[1]=1; d[1]=0; while (f<l){ k=q[++f]; For(i,1,n) if (d[i]==-1 && a[k][i]>0){ d[i]=d[k]+1; q[++l]=i; } } return d >0; } int dfs(int x,int low){ int i,k; if (x==n) return low; For(i,1,n) if (d[x]+1==d[i] && a[x][i]>0 && (k=dfs(i,min(low,a[x][i])))){ a[x][i]-=k; a[i][x]+=k; return k; } return 0; } int main(){ int i,j,k,x,y,z; freopen("ditch.in","r",stdin); freopen("ditch.out","w",stdout); scanf("%d%d",&m,&n); for (i=1;i<=m;i++){ scanf("%d%d%d",&x,&y,&z); a[x][y]+=z; } int ans=0; while (bfs()){ while (k=dfs(1,INF)) ans+=k; } printf("%d\n",ans); return 0; }
相关文章推荐
- IOS-网络(ASI使用)
- HttpUrlConnection缓存,仿微信朋友圈图片缓存效果
- [Python]网络爬虫(12):爬虫框架Scrapy的第一个爬虫示例入门教程
- 网络---关于HTTP 304状态码的理解
- iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载+使用输出流代替文件句柄
- linux网络基础
- 常见HTTP错误代码大全
- Android 中访问HTTP
- 网络相关
- linux下网络驱动
- 蓝懿IOS网络服务器与客户端
- 2.2 常用工具类 网络 支撑 JSON
- aysnctask 处理网络事件
- android 5.0及以上https No peer certificate
- 建立网络链接传输数据 HttpClientUtil
- AsyncTask+GridView+BaseAdapter实现解析网络数据,图文混排。HttpUtils,JsonUtils等
- BP人工神经网络的C++实现
- IOS-网络(ASIHTTPRequest的使用简介)
- python实战系列之批量主机ping网络测试(七)
- 网络多线程你的理解有多少??