最大流之Ford-Fulkerson算法
来源:互联网 发布:矩阵的奇异值有0吗 编辑:程序博客网 时间:2024/05/16 08:22
核心:通过DFS寻找增广路,直至没有增广路,此时的F即为最大流;
操作实质:正向流量流多少,正向容量减多少,反向容量增多少;
下述代码为Ford-Fulkerson算法的邻接表实现,为了方便直接改变c(e)的值,而没有保存f(e)的值;
代码:
//用于表示边的结构体(终点,容量,反向边)struct edge{ int to,cap,rev;};vector<edge> G[max_v];//图的邻接表表示bool used[max_v];//DFS中用到的访问标记//向图中增加一条从s到t容量为cap的边void add_edge(int from,int to,int cap){ G[from].push_back((edge){to,cap,G[to].size()}); G[to].push_back((edge){from,0,G[from].size()-1});}//通过DFS寻找增广路int dfs(int v,int t,int f){ if(v==t) return f; used[v]=true; for(int i=0;i<G[v].size();i++) { edge &e=G[v][i]; if(!used[e.to]&&e.cap>0) { int d=dfs(e.to,t,min(f,e.cap)); if(d>0) { e.cap-=d; G[e.to][e.rev].cap+=d; return d; } } } return 0;}//求解从s到t的最大流int max_flow(int s,int t){ int flow=0; for(;;) { memset(used,0,sizeof(used)); int f=dfs(s,t,INF); if(f==0) return flow; flow+=f; }}
阅读全文
0 0
- 最大流之Ford-Fulkerson算法
- 最大流算法之Ford-Fulkerson
- 最大流之Ford-Fulkerson算法
- 最大流 Ford-Fulkerson算法
- 网络流之最大流算法(ford-fulkerson)
- 网络流最大流之Ford-Fulkerson算法
- poj 1149 最大流之Ford Fulkerson算法
- 最大网络流之Ford-Fulkerson算法和ScalingFord-Fulkerson算法
- hdu 3549最大流Ford-Fulkerson算法
- 最大流问题(Ford-Fulkerson算法)
- 最大流 Ford-Fulkerson算法模板
- Ford-Fulkerson算法模板(最大流)
- 最大网络流的Ford-Fulkerson 算法
- 最大流问题Ford-Fulkerson算法
- 最大流算法(Ford-Fulkerson)
- 求解最大流的 Ford-Fulkerson 算法
- Ford-Fulkerson(最大流)
- 最大流问题之Ford-Fulkerson
- post和get的区别(转自 tawa08 )
- COJ1970-LXX数
- 大数据暑期学校心得体会
- leetcode[Hamming Distance]//待整理多种解法
- 走进java_类加载器 与 双亲委派模式
- 最大流之Ford-Fulkerson算法
- 性能调优(一)----Amdahl定律及木桶原理
- #!/usr/bin/env python与#!/usr/bin/python的区别
- (十七)四大组件的工作过程-Activity
- hdu 6050 Funny Function (数学题+快速幂)
- 大数据 (五)Hadoop-HDFS zookeeper和Hadoop-HDFS的集成
- JPA SQL查询
- 域名juying.org接广告
- R语言summary()报错object of type 'closure' is not subsettable的原因