网络流——最大权闭合子图

网络流——最大权闭合子图

定义

  • 闭合子图:有向图的闭合子图是指有向图中的一个子图\(V\),对于\(\forall <u,v>\),若\(u\in V\),则\(v\in V\)
  • 最大权闭合子图:点权和最大的闭合子图。

算法

最大权闭合子图的求解一般使用网络流来求解。

先给出算法,

对于所有正权点从S向这个点连一条边,边权为点权

对于所有负权点从这个点向T连一条边,边权为点权的相反数。

对于原图中的边,边权设为inf。

用所有正边权的和减去最小割就可以了。

正确性显然

考虑为什么是最优的

最小割=(不选的正权之和+|要选的负权|)
最大权闭合子图=(正权之和-不选的正权之和-要选的负权绝对值之和)=正权值和-最小割

所以最小化最小割就可以了

posted @ 2020-04-01 22:50  Adscn  阅读(169)  评论(0编辑  收藏  举报