考虑不联通的情况。图不好做,就造一棵生成树出来,由于是无向图,所以只有树边和返祖边。
发现在一条树边断开后,生成树会分成两个连通块,由覆盖这条树边的返祖边链接,只有这些返祖边也全部断开,原图才会不联通。
想到异或的优良性质。我们给所有返祖边在 \([0,2^{63})\) 中随机一个值作为这条边的权值,那么当树边的权值等于所有覆盖它的非树边的异或和时,问题等价于问给出的这些边中有没有异或和为 \(0\) 的边集。而这个问题显然可以使用线性基求解。
而给树边赋值的部分,可以使用树上查分 \(O(n)\) 求解。
时间复杂度 \(O(n+m+qk\log V)\)。