70分求调
查看原帖
70分求调
743494
FRANXX_楼主2023/1/17 16:35
#include<bits/stdc++.h>
using namespace std;
int f[100009],n,m,x[100009],y[100009],z[100009];
int find(int x)
{
    if(f[x]==x) return x;
    else f[x]=find(f[x]);
    return f[x];
}
void work1(int x,int y)
{
    f[find(y)]=find(x);
}
void work2(int x,int y)
{
    if(find(x)==find(y)) cout<<"Y\n";
    else cout<<"N\n";
}
int main()
{
    scanf("%d%d",&n,&m);
    for(int i=1;i<=m;++i)
    {
        scanf("%d",&z[i]);
        scanf("%d%d",&x[i],&y[i]);
        f[i]=i;
    }
    for(int i=1;i<=m;++i)
    {
        if(z[i]==1) work1(x[i],y[i]);
        else work2(x[i],y[i]);
    }
    return 0;
}
2023/1/17 16:35
加载中...