并查集
发表于|更新于
|字数总计:276|阅读时长:1分钟|阅读量:
概念
并查集
,正如它名字一样,一种负责对集合的合并(Union)与查询(Find)的数据结构。
代码
#include<bits/stdc++.h> using namespace std; int n = 1005; vector<int> father = vector<int> (n, 0);
void init() { for (int i = 0; i < n; ++i) { father[i] = i; } }
int find(int u) { if(father[u]==u) return u; else{ int x=find(father[u]); father[u]=x; return x; } }
void join(int u, int v) { u = find(u); v = find(v); if (u == v) return ; father[v] = u; }
bool isSame(int u, int v) { u = find(u); v = find(v); return u == v; }
int main() { init();
join(3,1); join(5,3); cout<<isSame(1,5)<<endl; }
|