并查集模板
作者:互联网
- 并查集模板。。
#include <bits/stdc++.h>
using namespace std;
int n, m;
#define MAX 1000001
int parent[MAX];
int find(int x)
{
return (x == parent[x]) ? x : parent[x] = find(parent[x]);
}
void init()
{
for (int i = 1; i <= n; i++)
{
parent[i] = i;
}
}
void un(int x, int y)
{
int fx = find(x), fy = find(y);
if (fx != fy)
{
parent[fx] = fy;
}
}
int main()
{
cin >> n >> m;
init();
for (int i = 0; i < m; i++)
{
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
if (a == 2)
{
if (find(b) == find(c))
{
printf("Y\n");
}
else
printf("N\n");
}
else
{
un(b,c);
}
}
}
标签:parent,int,MAX,查集,else,find,模板 来源: https://www.cnblogs.com/Wang-Xianyi/p/16536135.html