今天发现了一种按秩合并的简单(省事)写法:
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]++;
}