HDU3549+Ford-Fulkerson
Ford-Fulkerson算法
基本没什么技巧
1 #include<cstdio> 2 #include<cstring> 3 #include<cstdlib> 4 #include<queue> 5 using namespace std; 6 #define N 1005 7 #define inf 9999999 8 int map[N][N],pre[N],vis[N]; 9 int start,eend,ans; 10 11 void max_flow(int n) 12 { 13 int i,j,k; 14 while(1) 15 { 16 queue<int>q; 17 while(!q.empty())q.pop(); 18 19 memset(vis,0,sizeof(vis)); 20 //memset(pre,-1,sizeof(pre)); 21 22 q.push(start); 23 vis[start]=1; 24 while(!q.empty()) 25 { 26 k=q.front(); 27 q.pop(); 28 if(k==eend) break;//找到了增广路 29 for(i=1;i<=n;i++) 30 { 31 if(vis[i]==1||map[k][i]==0)continue; 32 q.push(i); 33 vis[i]=1; 34 pre[i]=k; 35 } 36 } 37 38 if(vis[eend]==0)break;//无法找到增广路 39 40 int min=inf; 41 for(i=eend;i!=start;i=pre[i]) 42 { 43 if(map[pre[i]][i]<min) 44 { 45 min=map[pre[i]][i]; 46 } 47 } 48 49 for(i=eend;i!=start;i=pre[i]) 50 { 51 map[pre[i]][i]-=min; 52 map[i][pre[i]]+=min; 53 } 54 ans+=min; 55 } 56 return ; 57 } 58 59 int main() 60 { 61 int i,j,k,tcase,t; 62 int m,n,a,b,c; 63 scanf("%d",&tcase); 64 for(t=1;t<=tcase;t++) 65 { 66 scanf("%d%d",&n,&m); 67 start=1; 68 eend=n; 69 memset(map,0,sizeof(map)); 70 while(m--) 71 { 72 scanf("%d%d%d",&a,&b,&c); 73 map[a][b]+=c; 74 } 75 ans=0; 76 max_flow(n); 77 printf("Case %d: %d\n",t,ans); 78 } 79 return 0; 80 }
转载于:https://www.cnblogs.com/xxx0624/archive/2012/10/22/2734656.html
HDU3549+Ford-Fulkerson相关推荐
- C++ edmond karp和ford fulkerson求最大流算法(附完整源码)
C++实现hopcroft karp霍普克洛夫特-卡普算法 C++实现hopcroft karp霍普克洛夫特-卡普算法完整源码(定义,实现,main函数测试) C++实现hopcroft karp霍普 ...
- 算法艺术——网络最大流
女强人:http://blog.csdn.net/abcjennifer/article/details/5556455 USACO 4.2.1 Ditch 网络最大流问题算法小结 通过 USACO ...
- 微软等数据结构+算法面试100题全部答案集锦
微软等数据结构+算法面试100题全部答案集锦 作者:July.阿财. 时间:二零一一年十月十三日. 引言 无私分享造就开源的辉煌. 今是二零一一年十月十三日,明日14日即是本人刚好开博一周年.在一周年 ...
- 28个不得不看的经典编程算法!!
前十个是来自圣经的十大算法: 发起人的描述:<来自圣经的证明>收集了数十个简洁而优雅的数学证明,迅速赢得了大批数学爱好者的追捧.如果还有一本<来自圣经的算法>,哪些算法会列入其 ...
- 图的匹配问题与最大流问题(三)——最大流问题Ford-Fulkerson方法Java实现
上篇文章主要介绍了Ford-Fulkerson方法的理论基础,本篇给出一种Java的实现. 先借助伪代码熟悉下流程 FORD-FULKERSON(G,t,s) 1 for each edge(u,v) ...
- 图割Graph-Cut的最大流实现
利用最大流标号法求解最大流,详见代码: Version:未加头尾节点版: 缺点:havn't take nodes' pixels into consideration [cpp] view plai ...
- ICPC-图论知识与算法要览
1.图定义(Definitions in graph theory) 1)图(Graph) 2)有向图(Directed graph) 3)图数据表示 邻接矩阵(Adjacency Matrix),邻 ...
- Python小白的数学建模课-19.网络流优化问题
流在生活中十分常见,例如交通系统中的人流.车流.物流,供水管网中的水流,金融系统中的现金流,网络中的信息流.网络流优化问题是基本的网络优化问题,应用非常广泛. 网络流优化问题最重要的指标是边的成本和容 ...
- 格雷通路 算法 java,Java算法与数据结构教程
北上广容不下肉身, 三四线放不下灵魂, 程序员里没有穷人, 有一种土豪叫 算法工程师. 程序 = 数据结构 + 算法 程序是为了解决实际问题而存在的.然而为了解决问题,必定会使用到某些数据结构以及设计 ...
- 尹成学院区块链 Go 学习大纲-取得大纲试看视频联系微信yinchengak48
网址:http://www.1cxy.net GO技术交流QQ群:254416566 所处阶段 主讲内容 技术要点 学习目标 第一阶段Go语言开发入门实战 1.Go语言介绍及开发环境搭建 1.Go语言 ...
最新文章
- OpenCV 2.4.9-2.4.13各个版本附加依赖项Lib文件汇总
- String[] arrayIP= null;的典型错误
- 2012年1月java_全国2012年1月自考Java语言程序设计(一)试题及答案.doc
- LeetCode 546. 移除盒子(DP)*
- 一步步创建第一个Docker App —— 4. 部署应用
- Runtime error 216 at xxx 故障解决一例
- @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) 注解的作用
- 索尼收购挪威公司Nevion 进一步增强其业务组合
- docker pytorch
- 安装阿里Java代码规约插件
- 华为防火墙产品介绍和工作原理介绍
- 小D课堂 - 零基础入门SpringBoot2.X到实战_汇总
- CNBlog客户端--第一阶段记录
- 练习12——二叉树与表达式
- paraview启动失败:failed to get wglChoosePixelFormatARB
- PayPal第一次提现失败手续费返还教程
- 推荐收藏 | 美团技术团队的书单
- IE8 打开速度慢的解决办法
- Intel 处理器型号数字和字母含义解析
- 用大数据看懂《速度与激情》的用车法则
热门文章
- jmeter安装 java,Windows下安装jmeter图文教程
- python参数检查类型_Python类型检查
- java关键字保留字_Java这个关键字
- svn迁移到git_SVN到GIT的迁移完整教程
- 如何在Java中使用Array实现ArrayList
- day034 锁,信号量,事件,队列,子进程与子进程通信,生产者消费者模型,joinableQueue...
- 如何进行多云环境中的数据管理?
- 阿里云前端周刊 - 第 25 期
- @SuppressWarnings
- [Step By Step]SAP HANA PAL多项式回归预测分析Polynomial Regression编程实例FORECASTWITHPOLYNOMIALR(预测)...