启发式合并,但是去掉了启发式。
#include<bits/stdc++.h>
#define N 10009
using namespace std;
int n,m,belong[N];
vector<int>v[N];
signed main(){
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++){
v[i].push_back(i);
belong[i]=i;
}
for(int i=1;i<=m;i++){
int op,x,y;
cin>>op>>x>>y;
if(op==1){
if(belong[x]==belong[y]){
continue;
}
x=belong[x],y=belong[y];
// if(v[x].size()>v[y].size()){
// swap(x,y);
// }
for(int j=0;j<v[x].size();j++){
belong[v[x][j]]=y;
v[y].push_back(v[x][j]);
}
v[x].clear();
}
else{
v[belong[x]]==v[belong[y]]?cout<<"Y"<<endl:cout<<"N"<<endl;
}
}
return 0;
}