其实没有什么别的意图
只是把函数都打包在结构体里面
用的时候比较爽
还有大家给个赞吧蟹蟹QAQ
#include <iostream>
#include <cstring>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 100010;
int n, m;
struct Node
{
int fa[N];
void init()
{
for (int i = 1; i <= n; i ++ ) fa[i] = i;
}
int find(int x)
{
return x == fa[x] ? x : fa[x] = find(fa[x]);
}
void unit(int a, int b)
{
a = find(a), b = find(b);
fa[a] = b;
}
void query(int a, int b)
{
a = find(a), b = find(b);
cout << (a == b ? "Yes\n" : "No\n");
}
}a;
int main()
{
cin >> n >> m;
a.init();
char c[2];
for (int i = 1, x, y; i <= m; i ++ )
{
scanf("%s%d%d", c, &x, &y);
if (*c == 'M') a.unit(x, y);
else a.query(x, y);
}
return 0;
}