前言:今天是农历2021的最后一天!今天就不介绍什么新算法了,放一个带有路径压缩和按秩合并的并查集模板吧,祝大家在新的一年里,都能和挚友走在一起,union 长存!
代码模板:
struct UnionFind { int n; vectorpar, rank; UnionFind(int _n) { n = _n; par = vector (n); rank = vector (n, 1); for (int i = 0; i < n; ++i) par[i] = i; } int find(int x){ if(x == par[x]) return x; return par[x] = find(par[x]); } void unite(int x, int y){ x = find(x), y = find(y); if(x != y){ if(rank[x] > rank[y]){ rank[x] += rank[y]; par[y] = x; }else{ rank[y] += rank[x]; par[x] = y; } } } };
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)