社区讨论
并查集一定要初始化自己为自己爹吗
P3367【模板】并查集参与者 6已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @mi7rrgr8
- 此快照首次捕获于
- 2025/11/21 02:33 4 个月前
- 此快照最后确认于
- 2025/11/21 02:33 4 个月前
好像不初始化判断是否为0也可以啊?还是初始化会对其他题有什么帮助?
CPP#include <iostream>
using namespace std;
int father[10010];
int n, m;
int getf(int x)
{
if (father[x]) return father[x] = getf(father[x]);
return x;
}
void merge(int x, int y)
{
int fx, fy;
fx = getf(x); fy = getf(y);
if (fx == fy) return;
father[fy] = fx;
}
int main()
{
cin >> n >> m;
for (int i = 1; i <= m; i++) {
int z, x, y;
cin >> z >> x >> y;
if (z == 1) merge(x, y);
else {
if (getf(x) == getf(y)) cout << 'Y' << endl;
else cout << 'N' << endl;
}
}
}
回复
共 6 条回复,欢迎继续交流。
正在加载回复...