最大权闭合子图

首先有 推荐阅读


定义

一个有向图, 每个点有点权 wi(可负), 要找到其一个子图, 满足:

  1. 对于原图中所有边 (u,v), 若点 u 在子图中, 则点 v 在子图中

  2. 子图的点权和最大

sol

新建一个网络图:

对于原图中的点, 若 wi > 0, 连边 (S, i, wi), 若 wi < 0, 连边 (i,T,-wi), 若 wi=0, 不做任何事。

对于原图中的边 (u,v), 连边 (u,v,+∞)。

答案就是 原图所有正点权之和 - 网络图最小割

证明:

参见 最小割模型在信息学竞赛中的应用

或:

回忆最小割的理解:…………把所有点 分成两个集合 S,T, 最小化……(balabala)…………

回到那个网络图, 考虑把 “选” 看成和 S 在一个集合里, 把 “不选” 看成和 T 在一个集合里, 最小割的值是 “将物品分为选和不选损失的最小代价”。

那么对于 S 到正权物品的边,可以看成 “不选这个物品就要损失这个正权物品的权值”;

对于负权物品到 T 的边, 可以看成 “选这个物品就要损失这个负权物品的相反数”。

对于一个点对 (u,v), 若在原图的联通关系中, 选了 u 就必须选 v, 在这个网络图中很好体现, 具体地, 选了 u, 即 (S,u) 未断开, 即 (v,T) 必须断开, 即 (S,v) 不需要断开。(由于一句话里混了很多情况, 这里叙述的比较粗)

posted @ 2021-01-06 10:19  xwmwr  阅读(61)  评论(0编辑  收藏  举报