EK算法的核心
  反复寻找源点 s 到汇点 t 之间的增广路径,若有,找出增广路径上每一段的最小值delta,若无,则结束。
  寻找增广路径时用BFS来找,并且更新残留网的值。
  找到delta后,则使最大流值加上delta,更新为当前最大的最大流值。

  更详细的到:http://www.cnblogs.com/zsboy/archive/2013/01/27/2878810.html

  SAP算法
  1.首先设 h 数组,h[i]表示节点 i 到汇点经过的最少路径数;
  2.在一次寻找可行路径的过程中,若此时已到达 i 点,对于< i , j >,若h[i]=h[j]+1,则j为可选点,这样可保证每次找到的到达t的路径所经过的边数是最少的;
  3.某时刻,在到达i处,不存在<i , j>,使得h[i]=h[j]+1,则修改h[i],设i的所有后继的最小h为t,则修改h[i]=t+1;
  4.设num[x]为h[]值为x的点的个数。对于一点i,在修改h[i]时,若num[h[i]]=1则停止。因为修改了h[i],num[h[i]]=0,h[i]的值变大了,没有了大小为h[i]的,出现断层,永远不能到达汇点。

  算法流程:

  (1).从源点s开始,找下一个节点p,使得h[s]=h[p]+1,找到继续找p的下一个节点,到达汇点t时转(3),否则转(2);
  (2).修改h[s]的值,重新到1;
  (3).根据本次找到的路径修改路径上的流量和反向边的流量,设最小流量的边为<u,v>,则下一次找路径时,从u开始向汇点找。

  sap算法详解及模板:http://blog.csdn.net/liguanxing/article/details/5783804

最大流算法----(SAP 和 EK)的更多相关文章

  1. 最大流算法-ISAP

    引入 最大流算法分为两类,一种是增广路算法,一种是预留推进算法.增广路算法包括时间复杂度\(O(nm^2)\)的EK算法,上界为\(O(n^2m)\)的Dinic算法,以及一些其他的算法.EK算法直接 ...

  2. 网络最大流算法—Dinic算法及优化

    前置知识 网络最大流入门 前言 Dinic在信息学奥赛中是一种最常用的求网络最大流的算法. 它凭借着思路直观,代码难度小,性能优越等优势,深受广大oier青睐 思想 $Dinic$算法属于增广路算法. ...

  3. Ford-Fulkerson 最大流算法

    流网络(Flow Networks)指的是一个有向图 G = (V, E),其中每条边 (u, v) ∈ E 均有一非负容量 c(u, v) ≥ 0.如果 (u, v) ∉ E 则可以规定 c(u, ...

  4. 算法9-5:最大流算法的Java代码

    残留网络 在介绍最大流算法之前先介绍一下什么是残留网络.残余网络的概念有点类似于集合中的补集概念. 下图是残余网络的样例. 上面的网络是原始网络.以下的网络是计算出的残留网络.残留网络的作用就是用来描 ...

  5. 海量数据挖掘MMDS week3:流算法Stream Algorithms

    http://blog.csdn.net/pipisorry/article/details/49183379 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...

  6. 基于.net的分布式系统限流组件(限流算法:令牌算法和漏斗算法)

    转载链接:https://www.cnblogs.com/vveiliang/p/9049393.html 1.令牌桶算法 令牌桶算法是比较常见的限流算法之一,大概描述如下: 1).所有的请求在处理之 ...

  7. 常用限流算法与Guava RateLimiter源码解析

    在分布式系统中,应对高并发访问时,缓存.限流.降级是保护系统正常运行的常用方法.当请求量突发暴涨时,如果不加以限制访问,则可能导致整个系统崩溃,服务不可用.同时有一些业务场景,比如短信验证码,或者其它 ...

  8. Cable TV Network 顶点连通度 (最大流算法)

    Cable TV Network 题目抽象:给出含有n个点顶点的无向图,给出m条边.求定点联通度   K 算法:将每个顶点v拆成 v'   v''  ,v'-->v''的容量为1.       ...

  9. HDU 3657 Game (SAP | Dinic | EK 三种算法的比较)

    Game Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

随机推荐

  1. public void Delete<T>(List<T> EntityList) where T : class, new() 这是什么意思

    就是说T必须是一个类(class)类型,不能是结构(structure)类型. 这是类型参数约束,.NET支持的类型参数约束有以下五种: where T : struct                ...

  2. iOS使用ffmpeg播放rstp实时监控视频数据流

    一.编译针对iOS平台的ffmpeg库(kxmovie) 最近有一个项目.须要播放各种格式的音频.视频以及网络摄像头实时监控的视频流数据,经过多种折腾之后,最后选择了kxmovie,kxmovie项目 ...

  3. 手机端页面自适应:rem布局

    rem布局非常简单,首页你只需在页面引入这段原生js代码就可以了 (function (doc, win) { var docEl = doc.documentElement, resizeEvt = ...

  4. uva11029 - Leading and Trailing

    题目: 求n的k次方,然后将答案用前三位和最后三位表示. Sample Input 2 123456 1 123456 2 Sample Output 123...456 152...936 分析: ...

  5. Linux 重定向

    Linux 标准文件描述符 描述符  缩写 描述 0  STDIN  标准输入 1  STDOUT  标准输出 2  STDERR  标准错误 3-9    应该是扩展的标准输出(待验证) 命令行重定 ...

  6. XML字符串转化json

    public static String XMLTOJSON(String XMLContent,String tag) {  XMLSerializer xmlSerializer = new XM ...

  7. javascript实现当前页导航激活

    html <ul id=”nav”> <li><a href=”http://www.daqianduan.com/”>首页</a></li> ...

  8. ThinkPHP框架下基于RBAC的权限控制模式详解

    这几天因为要做一个项目,需要可以对Web应用中通用功能进行封装,其中一个很重要的涉及到了对用户.角色和权限部分的灵活管理.所以基于TP框架自己封装了一个对操作权限和菜单权限进行灵活配置的可控制模式. ...

  9. logstash 根据type 判断输出

    # 更多ELK资料请访问 http://devops.taobao.com 一.配置前需要注意: 1.Use chmod to modify nginx log file privilege. E.g ...

  10. Keli Linux与网络安全(2)——初探Keli

    Kali是BackTrack的升级换代产品,按照官方网站的定义,Kali Linux是一个高级渗透测试和安全审计Linux发行版.作为使用者,我简单的把它理解为,一个特殊的Linux发行版,集成了精心 ...