【网络流】最小点权覆盖集、最大点权独立集
作者:互联网
目录
简介
解法
模板题及代码
简介
最小点权覆盖集问题指的是:在图中选取一些点,满足图中每条边连接的两个点中,至少一个被选择,求所选取的点最小权值和。
最大点权独立集问题是最小点权覆盖集问题的对偶问题,指的是:在图中选取一些点,满足:图中每条边连接的两个点中,至多一个被选择,求所选取的点最大权值和。
对于一般图而言,这两个问题是 \(NPC\) 问题,因此我们着重讨论二分图情况的解法。
解法
因为两个问题是对偶的,所以我们只需解决最小点权覆盖集问题,下为解法:
构建流网络 \(G_N\)
- 对原图 \(G\) 二分染色,简便起见,记点的颜色为白点、黑点。
- 建立源点 \(s\) ,\(s\) 向白点连接容量为相应点权值的边。
- 类似地,黑点向汇点 \(t\) 连接容量为相应点权值的边。
- 图中原有的边连接容量为 \(∞\) 的边。
在流网络 \(G_N\) 上跑一遍最小割就可以求出答案了。
正确性简证:对于任意一条从 \(s\) 到 \(t\) 的路径,一定存在一条边被割断,而且因为原图对应的边容量为 \(∞\) ,因此割边必然存在于 \(s\) 与白点之间或者黑点与 \(t\) 之间,对应的流量便是选取的最小点权。
(待upd)
标签:覆盖,点权,白点,最小,选取,连接,解法 来源: https://www.cnblogs.com/Tenshi/p/14747496.html