zoukankan      html  css  js  c++  java
  • 上下界网络流总结

    ss和tt为附加源或者说超级源

    1.无源汇上下界可行流

      对于(u,v)有向边,上界为a,下界为b 构图方法为:

      (1) ss 到 v 容量为 b

      (2) u 到 tt 容量为 b

      (3) u 到 v 容量为 a-b

     求ss-tt最大流,当且仅当 maxflow=sigma(i,tt)=sigma(ss,i) 时 存在可行流

    2.有源汇上下界最小流

      如果发现原图有源汇,要先转化为无源汇

      其他点如1方法,建图,另加 t-s 容量为 inf 

      求一遍 ss-tt最大流,此时s-t的流量为 t-s这条边的反向边的流量,记为 x

      在残量网络中删去 t-s 边,具体方法为 e[i].v:=0 e[i xor 1].v:=0

      求一遍 t-s最大流(注意是 t-s),记此时的最大流为y

      则最小可行流为x-y (可以理解为求出一个可行流,然后退掉了一些无用流)

    3.有源汇上下界最大流

      构图如2,只是求完ss-tt最大流后,不做记录,也不删边,直接在残量网络上求s-t最大流,即为答案

      (可以理解为,求出一个可行流后,发现还可现流更多的流,就求s-t最大流 之所以可以不删边

       是因为第一次ss-tt最大流完了之后s-t的流量存在 t-s的反向边s-t中,在跑s-t最大流的时候已经将其算入答案)

    有错请指出  

  • 相关阅读:
    Python基础09 面向对象的进一步拓展
    Python快速教程 (手册)
    Python基础03 序列
    Python基础04 运算
    Python基础08 面向对象的基本概念
    Python基础07 函数
    Python基础10 反过头来看看
    Python基础05 缩进和选择
    Python进阶02 文本文件的输入输出
    Python进阶01 词典
  • 原文地址:https://www.cnblogs.com/zyfzyf/p/3857320.html
Copyright © 2011-2022 走看看