POJ-1273-Drainage Ditches
来源:互联网 发布:五子棋雾化器做芯数据 编辑:程序博客网 时间:2024/03/28 23:43
POJ-1273-Drainage Ditches
http://poj.org/problem?id=1273
基本的最大流,Ford-Fulkerson算法,按LRJ的白书写的
#include<iostream>#include<cstring>#include<queue>using namespace std;#define INF 0x7fffffffint main(){int n,m;int from,to,w,f;int u,v;int cap[201][201],flow[201][201];int a[201]; //起始点到每个节点的最小残量,a[i]总是正数,代替visit标记数组int p[201];queue<int>q;while(scanf("%d%d",&m,&n)!=EOF){memset(cap,0,sizeof(cap));memset(flow,0,sizeof(flow));while(m--){scanf("%d%d%d",&from,&to,&w);cap[from][to]+=w;}f=0;for(;;){memset(a,0,sizeof(a));a[1]=INF;q.push(1);while(!q.empty()) //BFS找增广路{u=q.front();q.pop();for(v=1;v<=n;v++)if(!a[v]&&cap[u][v]>flow[u][v]){p[v]=u; //记录v的父亲,并加入队列q.push(v);a[v]=a[u]<(cap[u][v]-flow[u][v])?a[u]:(cap[u][v]-flow[u][v]); //最小残量}}if(a[n]==0) //找不到,则当前流已经是最大流break;for(u=n;u!=1;u=p[u]) //从汇点往回走{flow[p[u]][u]+=a[n]; //更新正向流量flow[u][p[u]]-=a[n]; //更新反向流量}f+=a[n]; //更新从源点流出的总流量}printf("%d\n",f);}return 0;}
- POJ 1273 Drainage Ditches
- POJ 1273 Drainage Ditches
- POJ 1273 Drainage Ditches
- poj 1273 Drainage Ditches
- poj 1273 Drainage Ditches
- POJ 1273 Drainage Ditches
- POJ 1273 Drainage Ditches
- POJ-1273-Drainage Ditches
- poj 1273 Drainage Ditches
- POJ 1273 Drainage Ditches
- poj 1273 Drainage Ditches
- POJ 1273 Drainage Ditches
- POJ-1273-Drainage Ditches
- poj 1273 Drainage Ditches
- POJ 1273 Drainage Ditches
- poj 1273 Drainage Ditches
- POJ 1273 Drainage Ditches
- POJ 1273 Drainage Ditches
- Windows7(32位)下SVN进行版本控制和项目管理的安装配置和使用方法简述
- Camera源码分析(android2.2)
- IOCP加Windows线程池打造高伸缩性高性能的服务器应用
- Android的monkey测试
- 云开发
- POJ-1273-Drainage Ditches
- hdu 1058 Humble Numbers (DP)
- .NET发邮件
- CF——#109div1 A
- 几十款jQuery图片和幻灯片欣赏(转载)
- 初步接触openstack
- S3C2400之LCD控制器详解一
- 算法基础之排序篇-基数排序
- oracle trigger (触发器)