决心少年 @ 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
嗯哼