为什么只拿到30pts
自己看了代码思路清晰没有问题啊
#include<bits/stdc++.h>
using namespace std;
int n,m;
int father[529001];
int ff(int v){
if(father[v]==v){
return v;
}else{
father[v]=ff(father[v]);
}
return father[v];
}
void unnion(int a,int b){
int fa,fb;
fa=ff(a),fb=ff(b);
if(fa!=fb){
father[b]=a;
}
}
void find(int a,int b){
int fa,fb;
fa=ff(a),fb=ff(b);
if(fa==fb){
cout<<'Y'<<endl;
}else{
cout<<'N'<<endl;
}
}
int main(){
int z,x,y;
cin>>n>>m;
for(int i=1;i<=n;i++){
father[i]=i;
}
for(int i=1;i<=m;i++){
cin>>z>>x>>y;
if(z==1){
unnion(x,y);
}else{
find(x,y);
}
}
}