带权并查集
深入理解带权并查集(例题+思考)
带权并查集(种类并查集)的简单总结(顺带总结并查集)
void init(int n) { for(int i = 0; i <= n; i++) { a[i] = 0; pre[i] = i; } } int find(int x) { if(x!=pre[x]) { int px = find(pre[x]); rank[x] = rank[x]+rank[pre[x]];
pre[x] = px;
} return pre[x]; } void unite(int x,int y,int d) { int px=find(x); int py=find(y); if(px!=py) { pre[py] = px; rank[py] = rank[x]+rank[y]+d; } }