并查集模板
发布日期:2021-05-14 16:43:42 浏览次数:15 分类:精选文章

本文共 448 字,大约阅读时间需要 1 分钟。

#include

#include <string.h> #include
using namespace std;

const int N = 100010; int p[N];

int find(int x) { if (x != p[x]) { p[x] = find(p[x]); } return p[x]; }

int main() { cin >> n >> m; for (int i = 1; i <= n; ++i) { p[i] = i; } while (m--) { char op[2]; cin >> op; if (op[0] == 'Q') { cin >> a >> b; if (find(a) == find(b)) { cout << "Yes" << endl; } else { cout << "no" << endl; } } else { cin >> a >> b; p[find(a)] = find(b); } } return 0; }

上一篇:并查集(求连通块数量)
下一篇:优先队列

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月07日 21时18分03秒