• 上下限最大流


    一、有上下限的最大流:首先,每条边的下限是必须要满足的。增加附加源点S和附加汇点T,原来的源点和汇点为s和t。对于原图G(s,t,low[u][v],high[u][v])构建相应的新图D(S,T,E),E包括,<t,s,INF>,<S,i,in[i]>,<i,T,out[i]>,<u,v,high[u][v]-low[u][v]>。其中,in[i]表示进入i的边的下限之和,out[i]表示离开i的边的下限之和。设sum为所有点的in值之和。然后求S到T的最大流A,若A不等于sum则不存在满足题意的可行流。否则删去边<t,s,INF>,接着求s到t的最大流B,则最大流为A+B,此时每条边的实际流量为此时每条边的流量加上每条边的下限。

    二、有上下限的最小流,有两种方法:

    (1)构建的新图D和上面的D是一样的。也是先求S到T的最大流,此时记录<t,s>边的流量A,然后删掉边<t,s>,接着求t到s的最大流B,则答案为A-B。此时A-B有可能为0,原因是这个图本来最小流为0,由于有环的存在这个图可以自给自足,此时增加S到s的边<S,s,B-A>,再跑S到t(此时是原来图的汇点t)的最大流。这样,每条边的流量加上下限就是每条边的实际流量。

    (2)二分t到s的上限,x=in[i]-out[i],x>=0,连边<S,i,x>,sum+=x,否则<i,T,-x>。求S到T的最大流,大于等于sum则可行。

  • 相关阅读:
    Spring IOC(二)
    Spring组件注册
    第六章:随机数和expect
    第二十一节:异常处理
    第二十节:基础知识阶段复习
    LVM逻辑卷管理
    第十九节:类的装饰器和数据描述符的应用
    第十八节:上下文管理协议
    第十七节:数据描述符
    第十六节:内置函数补充
  • 原文地址:https://www.cnblogs.com/jianglangcaijin/p/6036340.html
Copyright © 2020-2023  润新知