关于网络流最小割的一些小知识

1.输出任意一种最小割的方案:

在运行完网络流算法之后,在残量网络上,s和t之间不连通了
进行一边dfs/bfs,求出从s出发能到达的点集S,和不能到达的点集T
我们割掉了一组边,把原图划分成了S和T两个点集
所有从S跨越到T的满流边构成了一个最小割方案

2.判断一条边是否满流:

运行一次最大流算法,得到一个残量网络
取残量网络上的一条满流边(u, v),判断这条边是否一定满流
对残量网络运行Tarjan算法,求出所有SCC
当u和v不属于同一个SCC的时候,这条边一定满流
否则,我们可以在SCC中找到一个包含这条边的反向边的环,沿着环增广一次,仍然不破坏流量平衡,但是这条边已经不满流了

3.判断某一条边是否可能为最小割中的一条

所有一定满流的边都可能为最小割

4.判断某条边是否一定出现在最小割中

 

首先还是对残量网络求SCC
考虑一条满流边(u, v),判断她是否一定出现在最小割中
当u和s属于同一个SCC,并且v和t属于同一个SCC的时候,这条边一定出现在最小割中

5.输出在最小割的最小边数

设总边数为m,所有的边权都乘m+1然后再+1

用这个新的图跑最大流然后结果/(m+1)就是最小割

结果%(m+1)就是最小边数

 

转载于:https://www.cnblogs.com/mybing/p/8651898.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值