2600 城镇规划 (并查集 set)
小A最近在玩《都市:天际线》这款游戏,他在不断地建设着自己的城市(比如说修路盖房这种)。
但是一个没有贸易的城市是没有灵魂的,所以小A的城市中有许许多多的贸易来往,给这个城市带来源源不断的资金。
然而小A为了展现自己高超的游戏技巧,给自己打了一个增加游戏难度的mod,使得贸易的难度陡然上升。
在这个mod中,城市中的每一条路都有一个颜色C,假设贸易经过的路径序列为Ci(i=1,2,…,n),那么需要满足C_(2*k-1)=C_(2*k) (2*k<=n)的路径才能够成功完成这个贸易,否则就会出现诸如强盗打劫货物,货车翻车等事件导致贸易失败。
但是小A其实并没有100%计算正确的信心,所以他希望你能一直帮忙告诉他,他下一次准备进行的从A点到B点的贸易是否能够成功,由于小A的城市在不断施工,所以随时可能有一条路被建成。
#include<bits/stdc++.h>
using namespace std;
const int M=100005;
int n,m,Q,tot,fa[M],head[M],Next[M*4],vet[M*4],w[M*4];
set<int> s[M]; //s[i]表示i走一步可到达的点集
set<int>