网络最大流问题 poj1273 Drainage Ditches
来源:互联网 发布:java ee源码下载 编辑:程序博客网 时间:2024/05/19 00:10
网络最大流问题。 其实想法很直观,就是找一条流的路径,然后取这条路径上的最大流量,然后更新约束条件,然后再找这样的路径。。。直到没有能继续的路径。
找路径的方法使用的是广度优先搜索。
ps:最近在练习c语言,c语言虽然用起来比c++墨迹,各种注意事项,但是运行速度上跟c++的确不在一个量级上。
15ms AC,源代码:
/* * ===================================================================================== * * Filename: 1273.c * * Description: * * Version: 1.0 * Created: 2011年12月06日 23时51分07秒 * Revision: none * Compiler: gcc * * Author: MaZheng (blog.csdn.net/mazheng1989), mazheng19891019@gmail.com * Company: Dalian University Of Technology * * ===================================================================================== */#include<stdio.h>#include<stdlib.h>#include<limits.h>#define NUM 220#define minum(a,b) a<b?(a):(b)//please declare parameters hereint s,t;int N,M;int flow[NUM][NUM];int pre[NUM];char visited[NUM];int queue[NUM];//please declare functions here.void Input(){s=1;t=M;int Si,Ei,Ci;int i,j;for(i=1;i<=M;i++){for(j=1;j<=M;j++){flow[i][j]=0;}}for(i=0;i<N;i++){scanf("%d %d %d",&Si,&Ei,&Ci);flow[Si][Ei]+=Ci;}}void Output(){int i,j;for(i=1;i<=M;i++){for(j=1;j<=M;j++){printf("%d ",flow[i][j]);}printf("\n");}printf("\n");}int bfs(){int i;for(i=1;i<=M;i++){visited[i]=0;}int front=0,tail=0;queue[tail++]=s;visited[s]=1;int u,v;int min=INT_MAX;while(front<tail){u=queue[--tail];if(u==t)return min;for(v=2;v<=M;v++){if(visited[v]==0&&flow[u][v]>0){queue[tail++]=v;pre[v]=u;min=minum(min,flow[u][v]);visited[v]=1;}}}return 0;}int EK(){int m,v,u;int count=0;while(1){m=bfs();if(m==0)break;count+=m;v=t;while(v!=s){u=pre[v];flow[v][u]+=m;flow[u][v]-=m;v=u;}//Output();}return count;}int main(){freopen("input.txt","r",stdin);//input your ... while(scanf("%d %d",&N,&M)!=EOF){Input();//Output();printf("%d\n",EK());}return 0;}
- 网络最大流问题 poj1273 Drainage Ditches
- 【POJ1273】Drainage Ditches-最大流问题
- POJ1273 Drainage Ditches(最大流)
- POJ1273 Drainage Ditches 【最大流】
- POJ1273 Drainage Ditches(网络流最大流模板)
- POJ1273 Drainage Ditches——最大流
- POJ1273 Drainage Ditches最大流模板
- poj1273 Drainage Ditches 最大流EK
- poj1273 Drainage Ditches 最大流 dinic算法
- poj1273--Drainage Ditches(最大流)
- POJ1273 Drainage Ditches 【最大流Dinic】
- POJ1273 Drainage Ditches【最大流】【SAP】
- poj1273 Drainage Ditches(最大流)
- POJ1273 Drainage Ditches(最大流)
- poj1273 Drainage Ditches (最大流模板)
- POJ1273--Drainage Ditches(最大流)
- poj1273 Drainage Ditches(最大流dinic板子)
- POJ1273 Drainage Ditches 简单网络流
- MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等
- oracle获取指定的日期、时间
- 文件读写方法小记
- Eclipse智能提示
- Linux中vi文件保存退出命令
- 网络最大流问题 poj1273 Drainage Ditches
- IT人角度分析京东商城Server is too busy事件
- 从三层架构到MVC,MVP <转载>
- 框架随内容自动增高
- 比bitmap慢但不占用太大空间的字符串文本匹配版
- BigDecimal.setScale 处理java小数点
- C++拷贝构造函数(深拷贝,浅拷贝)
- 新的Windows Azure Marketplace 数据提供最新的天气和股票信息
- 文件读写方法小记2