先明确概念:什么是最大团,补图,最大独立集,最大团,最小点覆盖
原图最大团=补图最大独立集=总点数-补图最小点覆盖=总点数-补图最大匹配数
这个题问的是,删去哪些边可以使最大独立集变大
所以我们可以把问题扔到最大匹配上面了。让最大团变大也就是让最大匹配变小。什么情况下最大匹配会变小?当我们删掉最大匹配的必须边的时候。
下面问题转化为如何求二分图匹配的必须边。经典问题:
首先考虑求出二分图的左侧点和右侧点,然后源点向左侧点连边,汇点和右侧点连边,然后从左到右连边,跑一边最大流,求出最大匹配。下面考虑必须边的特征(下面认为当这条边剩余流量为 0 时不可通行):
- 在残量网络上,正边的流量已经跑满
这一条显然。
- 在残量网络上,边所连的两个点分属不同的 SCC
于是在残量网络上面跑 tarjan 即可。