并查集
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = 1e4 + 5;
int f[maxn];
int n, m;
inline int Find(int x) { return f[x] == x ? x : f[x] = Find(f[x]); }
signed main(void)
{
scanf("%d %d", &n, &m);
for (int i = 1; i <= n; i++)
f[i] = i;
for (int i = 1, opt, x, y; i <= m; i++)
{
scanf("%d %d %d", &opt, &x, &y);
if (opt == 1)
f[Find(x)] = Find(y);
if (opt == 2)
Find(x) == Find(y) ? puts("Y") : puts("N");
}
return 0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步