全RE求助!!!

P3367 【模板】并查集

决心少年 @ 2019-11-15 17:57:22

#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
int n,m;
int fa[200005];
int find(int x) 
{
    if(fa[x]==x)return x;  
    else 
        return fa[x]=find(fa[x]);
}
int uni(int x,int y)
{
    fa[find(x)]=find(y);
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        fa[i]=i;
    for(int i=1;i<=m;i++)
    {
        int Zi,Xi,Yi;
        cin>>Zi>>Xi>>Yi;
        if(Zi==1)
        {
            uni(Xi,Yi);
        }
        if(Zi==2)
        {
            if(find(Xi)==find(Yi)) cout<<"Y"<<endl;
            else
                cout<<"N"<<endl;
        }
    }
    return 0;   

}

by 彼溦岸颺 @ 2019-11-15 18:11:22

你知道开一个编译命令叫做——

-g -Wall

吗? 你合并并查集很显然因该是一个void类型的函数操作,而你写成了 int


by 决心少年 @ 2019-11-15 18:14:08

@彼溦岸颺

咋改


by 彼溦岸颺 @ 2019-11-15 18:14:37

#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
int n,m;
int fa[200005];
int find(int x) 
{
    if(fa[x]==x)return x;  
    else 
        return fa[x]=find(fa[x]);
}
void uni(int x,int y)
{
    fa[find(x)]=find(y);
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        fa[i]=i;
    for(int i=1;i<=m;i++)
    {
        int Zi,Xi,Yi;
        cin>>Zi>>Xi>>Yi;
        if(Zi==1)
        {
            uni(Xi,Yi);
        }
        if(Zi==2)
        {
            if(find(Xi)==find(Yi)) cout<<"Y"<<endl;
            else
                cout<<"N"<<endl;
        }
    }
    return 0;   

}

by 彼溦岸颺 @ 2019-11-15 18:14:47

好了


by 决心少年 @ 2019-11-15 18:17:17

@彼溦岸颺

谢谢!


by 决心少年 @ 2019-11-15 18:17:31

你的空间真不错


by 彼溦岸颺 @ 2019-11-15 18:19:00

嗯哼


|