传送门 cdq分治好题. 对于一条边,如果加上它刚好连通的话,那么删掉它会有两个大集合A,B.于是我们先将B中禁用的边连上,把A中禁用的边禁用,再递归处理A:然后把A中禁用的边连上,把B中禁用的边禁用. 这样递归下去用并查集维护答案就行了. 另外,当向上回溯时需要撤销之前的操作,因此需要用栈维护并查集历史信息. 代码: #include<bits/stdc++.h> #define N 100005 #define M 200005 using namespace std; inline in…