class UnionFind{
int count;
int[] parent;
public UnionFind(int n) {
count = n;
parent = new int[n];
for(int i = 0;i < n;i++) parent[i] = i;
}
public int find(int x) {
if(p[x] != x) p[x] = find(p[x]);
return p[x];
}
public void union(int p, int q) {
int pRoot = find(p);
int qRoot = find(q);
if(pRoot == qRoot) return ;
parent[pRoot] = qRoot;
count--;
}
}
并查集模板(java)
最新推荐文章于 2024-05-07 15:52:29 发布