ACDREAM 01F(并查集)

来源:互联网 发布:bootcamp for windows 编辑:程序博客网 时间:2024/05/18 15:56

并查集

并查集三部曲

1、初始化并查集数组

void init() {    for (int i = 1; i <= n; i++) {        pa[i] = i;      }}

2、查找x在并查集中的父亲

int find(int x) {    return x == pa[x] ? x : pa[x] = find(pa[x]);}

3、合并两个集合

void Union(int a, int b) {    int ra = find(a), rb = find(b);    if (ra < rb) {        pa[rb] = ra;    } else {        pa[ra] = rb;    } }
0 0