今天发现了一种按秩合并的简单(省事)写法:
void merge(int a, int b) {
int aa = find(a);
int bb = find(b);
if(rk[aa] > rk[bb])
swap(aa,bb);
fa[aa] = bb;
if(rk[aa] == rk[bb])
rk[bb]++;
}
本文介绍一种按秩合并的并查集实现方法,通过调整节点的秩来优化合并操作,提高查找效率。
今天发现了一种按秩合并的简单(省事)写法:
void merge(int a, int b) {
int aa = find(a);
int bb = find(b);
if(rk[aa] > rk[bb])
swap(aa,bb);
fa[aa] = bb;
if(rk[aa] == rk[bb])
rk[bb]++;
}
637

被折叠的 条评论
为什么被折叠?