博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最小割 + 网络流变体
阅读量:5155 次
发布时间:2019-06-13

本文共 897 字,大约阅读时间需要 2 分钟。

  这几天去搞了搞基础的算法,就把网络流放了几天,现在上来总结一下网络流的各种变体,有类似题目的话我尽量会附加。

  最小割

    所谓图的割,指的是对于某个顶点集合S, 从S发出指向S外部的那些边的集合,记为割(S, V\S)。这些边的容量之和被称为割的容量。对应到流的图中,如果有源点s belong to S,, 而汇点t belong to (V \ S),那么此时的割又称为s - t割。如果将网络中s - t割的所有边都删除,也就不会再有s到t的路径。

最小割问题:对于给定网络,为了保证从s 到t没有路径,需要删除的边的总容量的最小值是多少?

最大流最小割定理:最大流的流量等于最小割的容量。

  最大流的各种变体

1.多个源点的多个汇点的网络流:

  建立超级源点s,并且建立从超级源点到其它源点的容量为无穷,建立超级汇点,从其它汇点到超级汇点建立一条容量为无穷的边。求出从s到t的最大流即可。

2.无向图上的最大流:

  把无向图转换为有向图,只需要把无向图中容量为c的边建立一条反向边,两条边同时存在,求出最大流即可。

3.顶点上也有容量限制的情况:

  图中不光边上有容量限制,途中经过的顶点也有总流入两个总流出量限制的情况应该如何处理呢?此时我们可以把每个顶点拆成两个顶点,拆点之后得到两个顶点分别为入顶点和出顶点,将指向原先顶点的边改成指向入顶点,将从原先顶点指出的边改成从出顶点指出。并且,再从入顶点向出顶点连容量为原先顶点容量的边,就可以把顶点上的容量限制转为边上的容量限制。

4.有最小流限制的情况:

  是指每条边不光有最大流C限制,还有最小流量B的限制的情况,也即(B(e) <= f(e) <= C(e))。令f'(e) = f(e) - B(e),这就可以转化为只有最大流量限制的情况,也即0 <= f'(e) <= C(e) - B(e)。

而此时顶点对应的总流入量和总流出量的关系变为

挖个坑,打完比赛再补上,现在要去做模版题了,嘤嘤嘤

 

转载于:https://www.cnblogs.com/bianjunting/p/10935673.html

你可能感兴趣的文章
微信小程序之----问题
查看>>
thinkphp整合Ueditor编辑器
查看>>
小程序
查看>>
oracle汇编03
查看>>
UITextInputMode
查看>>
hdu 3790 最短路径问题
查看>>
hdu 3105 Fred's Lotto Tickets (水)
查看>>
C# 获取进程或线程的相关信息
查看>>
xcode调试打印QString
查看>>
Windows 7 常用快捷键 命令
查看>>
Servlet学习总结
查看>>
java求两个数组的并集、交集、差集
查看>>
HDU 5769 Substring(后缀数组)
查看>>
python实现图灵机器人帮你回复微信好友消息
查看>>
初识MongoDB
查看>>
C语言-07其它相关
查看>>
第六天站立会议
查看>>
GitBook是一个命令行工具(Node.js库),我们可以借用该工具使用Github/Git和Markdown来制作精美的图书,但它并不是一本关于Git的教程哟。...
查看>>
Height Half Values
查看>>
python打包exe
查看>>