二分图最小点覆盖、最大点独立集、最大团的构造方法

前言

学习 “如何构造一组偏序集的最大反链” 时才阅读到相关的方法,原来一直是白纸一张,确实算知识盲区了。
参考资料:博客小粉兔的题解

二分图最小点覆盖

定义 二分图的最小点覆盖 为:选出最少的点,使得任意一条边至少有一个端点被选。

构造方法是这样:

  • 首先用网络流或匈牙利算法求出二分图的一个最大匹配,设最大匹配大小为 \(m\)
  • 设左部点为 \(L\),右部点为 \(R\)。称在匹配中的边为 匹配边,否则为 非匹配边,匹配中的点为 匹配点,否则为 非匹配点
  • 枚举 \(R\) 中的非匹配点 为起点 \(dfs\)。规定 \(R\) 中的点只能沿着 非匹配边\(L\) 遍历,\(L\) 中的点只能沿着 匹配边\(R\) 遍历。标记 \(dfs\) 过程中所有被遍历到的点。
  • 将所有 \(L\) 中被标记的点\(R\) 中未被标记的点 拿出来组成点集 \(S\),那么 \(S\) 就是一组最小点覆盖的构造。

证明:

  • 最小点覆盖 \(\geq m\)

这个很简单。因为一个匹配至少有一个端点被选,所有匹配的端点都是不交的,因此至少选出 \(m\) 个点才能将所有匹配边都覆盖。

  • \(|S| = m\)

首先 \(R\) 中未被标记的点 一定都是 匹配点,因为我们是从所有 非匹配点 开始 \(dfs\) 因此它们都被标记了。

注意到如果 \(R\) 中一个 匹配点 被标记,那么 \(L\) 中所有和它相连的点也一定会被标记,这是因为它作为匹配点一定是 \(L\) 中的某个点沿着 匹配边 \(dfs\) 过来的,那么它被标记后会将所有通过 非匹配边 和它相连的点标记,因为一个点最多连一条 匹配边,因此所有和这个点相连的点都被标记了。也就是说,如果 \(R\) 中一个匹配点不选,那么 \(L\) 中它对应的匹配点必选

如果 \(R\) 中一个 匹配点 没有被标记,那么因为它只能由左边点 \(dfs\) 过来才能被标记,因此 \(L\) 中和它对应的匹配点一定没被标记。也就是说,若果 \(R\) 中一个匹配点选了,那么 \(L\) 中和它对应的匹配点一定不选。所以一个匹配恰好能选出一个点

至于 \(L\) 中的 非匹配点,它们一定是不会被标记的。如果存在一个 非匹配点 被标记,那么它一定不会再往 \(R\) \(dfs\) 了(它没有匹配边)。由于我们是从 \(R\) 中的一个 非匹配点 开始 \(dfs\),这样就形成了一条 起点是 非匹配点, 终点也是 非匹配点 的交错路,那么一定可以调整将匹配变得更大,这和 最大匹配 矛盾。

综上, \(|S| = m\)

  • \(S\) 是一个点覆盖

假设存在一条边 \((u, v)\),满足 \(u, v \notin S\)。(\(u\) 是左部点, \(v\) 是右部点)
那么一定满足 \(u\) 没有被标记, \(v\) 被标记了。
如果 \(v\)匹配点,那么因为 "如果 \(R\) 中的 匹配点 被标记, \(L\) 中所有和它相连的点一定都被标记了",所以这种情况不合法。
如果 \(v\)非匹配点,那么这条边一定是 非匹配边,所以 \(u\) 一定会被 \(dfs\) 到。这种情况不合法。

结合这三条结论,我们就证明了 \(S\) 是一个合法的 最小点覆盖 的构造方案,并且也能得到 二分图最小点覆盖等于最大匹配 的结论。

二分图最大点独立集

定义 二分图最大点独立集 为:选出最多的点,使得选出的任意两点之间没有边相连。

构造方法:
我们知道 点独立集 的补集是 点覆盖集,证明的话反证即可。
点覆盖集 的补集是 点独立集,同样可以反证。

因此只需要按照刚才的方法构造出 \(S\) 后,取 \(U / S\) 中的所有点就是一组 最大点独立集

二分图的最大团

定义 二分图的最大团 为:认为 \(L, R\) 各自都是一张完全图,选出最多的点使得诱导子图是一张完全图。

构造方法:
有结论:最大团 = 补图的最大点独立集。因此转化为 补图 后求出一组 最大点独立集 即可。

posted @ 2026-09-09 20:29  Czl2007  阅读(3)  评论(0)    收藏  举报