这道题如果硬求 $\rm max$$(S_A,S_B)$ 将会变得很复杂,分析题面可知,权值大于答案的边都被割掉后该图便会有两个以上的连通分量,反过来,如果割掉所有权值小于等于答案的边,该图将变成一个二分图;如果扩大 $\rm max$$(S_A,S_B)$,仍然可以满足题意,但如果缩小 $\rm max$$(S_A,S_B)$,割掉所有权值小于等于答案的边,该图仍然不是一个二分图。所以答案具有单调性,可以考虑利用二分答案枚举出所有答案,验证割掉所有权值小于等于答案的边后,该图能不能仍然是一个二分图,同时取满足该条件的最小答案为最终答案。判断二分图的时间复杂度为 $O(M+N)$,二分的时间复杂度为$O(logc)$,总时间复杂度为 $O((M+N)log c)$
代码如下:
1 |
|