可以观察样例发现规律,对于每一条加进来的边$(u, v)$,如果$u, v$连通,则$ans = ans \times 2 -1(ans = 1 when init)$,不连通就连边即可,显然用并查集维护。
有一个易懂的证明:
题目中每个点的度数大于零且都是偶数的子图等于这个子图就是几个环(它们之间不一定连通),对于每一条加进来的边$(u, v)$,如果$u, v$连通,那么$(u, v)$连上以后会形成一个环。而如果有一条路径$L$连接$u,v$,那么可以用边$(u, v)$替换掉$L$,则之前的每个方案都可以替换,那么答案自然就多一倍了。