ABC231H(二分图最小权边覆盖)
首先将行列分别抽象成 \(h, w\) 个点,每个格子视作连接两个点的一条边,那么问题就转化为了二分图最小权边覆盖问题。
考虑最后答案形如:若干组互不相交的匹配加上其他点连接到匹配内。
于此同时,不在匹配中的点 \(i\) 一定以权值最小的边 \(v_i\) 连接到匹配内,于是我们可以将所有点连接的最小边先全部加上,然后考虑匹配最多能减去不需要的花费。
发现两点的匹配 \(e : (i, j)\) 其能减去的代价为 \(c_e - (v_i + v_j)\) 于是直接求二分图最大权匹配即可。
视使用 KM 算法、原始对偶费用流或 zkw 费用流,那么复杂度 \(\mathcal{O}((h + w)n) / \mathcal{O}((h + w)n \log n) / \mathcal{O}((h + w)n ^ 2)\).