Loading

P3731 [HAOI2017] 新型城市化

\(\text{solution}\)

考虑这个东西就是不超过两个最大团,由于最大团点数为补图的最大独立集数值,又由于不超过两个,也就是说有两个集合,两两互相连边,那么我们补图完后就是两两不连边,所以补图是一张二分图,我们想求出加入一条边让使得最大团点数加 \(1\),就是要让补图删一条边,使得最大匹配减一,这样我们需要找到最大匹配一定要选的边,考虑怎么做。

我们先按照网络流的方法求最大匹配,然后发现如果一条边(含反向边)边权为 \(0\),那么这条边是没有用的,然后把剩下的边连成一个图,让后如果有最大匹配上的边在这张图的一个相同的强连通分量里,那么就意味着这条边一等可以被强连通分量里的一条正向边等效替代(强连通分量里大部分有一条正向边,相当于网络流里的反悔过程),所以这些边就是不应被选的,所以我们要选的就是剩下的那些两个端点不在一个强连通分量里的最大匹配上的边。

代码还是有难度的,调了一会。

posted @ 2023-08-08 20:18  Alexande  阅读(21)  评论(0)    收藏  举报