二分图最小点权覆盖:
每一条边 (u, v) 都是一个限制条件, 要求 u 和 v 不能同时取得.
我们考虑先取得所有的, 然后减去最小的点权.
建立原点 S , 连向二分图左边的所有点, 与 S 连通的意义是左边的点被选择了, 或者右边的点没有被选择.
建立汇点 T , 二分图右边的所有点连向它, 与 T 连通的意义是左边的点没有被选择, 或者右边的点被选择了.
利用最小割最大流定理, 我们跑最大流, 再根据最后一次 BFS 得出的情报构造方案.
定理 覆盖集与独立集互补.
证明 即证明覆盖集的补集中的点两两独立.
反设存在 u , v 在覆盖集的补集中, 且 u , v 不独立, 那么覆盖剂没有覆盖边 (u, v) , 假设不成立.
二分图最大点权独立集:
对于一对互补的覆盖集, 独立集, 覆盖集的点权之和 + 独立集的点权之和 = 所有点权之和 S .
注意到 S 一定, 如果要最大化独立集的点权之和, 即最小化覆盖集的点权之和, 转化为了上述问题.
方格取数问题: n * m 的网格图中, 每个格子有一个点权. 选一些不相邻的格子, 最大化点权之和.
对于棋盘, 有一个经典的套路, 就是黑白染色.
本题黑白染色之后变成了二分图, 求最大点权独立集即可.
时间: 2024-10-07 05:50:04