纯模版
2025-10-02 18:41:58
发布于:宁夏
5阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
vector <int> pre(200005);
vector <int> sz(200005);
int fnd(int x){
if(pre[x] == x) return x;
pre[x] = fnd(pre[x]);
return pre[x];
}
int main(){
int n,m;
cin>>n>>m;
for(int i = 1;i <= n;i++){
pre[i] = i;
sz[i] = 1;
}
while(m--){
int z,x,y;
cin>>z>>x>>y;
if(z == 1){
int u = fnd(x);
int v = fnd(y);
if(u == v) continue;
if(sz[u] < sz[v]) swap(u,v);
pre[v] = u;
sz[u] += sz[v];
}
else{
cout<<(fnd(x)==fnd(y)?"Y":"N")<<endl;
}
}
return 0;
}
这里空空如也





有帮助,赞一个