并查集(模板)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_42369449/article/details/83046939

(luogu 3367)

模板如下:

#include <bits/stdc++.h>
#define ll long long
#define N 10005
using namespace std;
int fa[N];
int findf(int x)
{
	if(x==fa[x]) return x;
	return fa[x]=findf(fa[x]);
}
int main()
{
	int n,m;
	scanf("%d%d",&n,&m);
	for(int i = 1;i <= n;i++)
	{
		fa[i]=i;
	}
	for(int i = 1;i <= m;i++)
	{
		int z,x,y;
		scanf("%d%d%d",&z,&x,&y);
		int t1=findf(x);
		int t2=findf(y);
		if(z==1)
		{
			if(t1!=t2) fa[t1]=t2; 
		}else if(z==2)
		{
			if(t1==t2) puts("Y");
			else puts("N");
		}
	}
	return 0 ;
}

猜你喜欢

转载自blog.csdn.net/qq_42369449/article/details/83046939
今日推荐