码迷,mamicode.com
首页 > 其他好文 > 详细

并查集

时间:2020-07-19 23:36:50      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:vector   int   c++   合并   turn   clu   ==   初始化   cto   

很简单,但是还是想记一下

初始化

#include <numeric>
vector<int> father(MAX);
iota(father.begin() + 1, father.end(), 1);

查找根

int findFather(int u) {
    if (father[u] == u)
        return u;
    else {
        int f = findFather(father[u]);
        father[u] = f;
        return f;
    }
}

合并

void merge(int a, int b) {
    int aF = findFather(a), bF = findFather(b);
    if (aF != bF) father[aF] = bF;
}

并查集

标签:vector   int   c++   合并   turn   clu   ==   初始化   cto   

原文地址:https://www.cnblogs.com/mostiray/p/13341697.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!