首页 > 其他 > 详细

并查集

时间:2016-11-14 15:18:31      阅读:165      评论:0      收藏:0      [点我收藏+]

并查集

主要用于两个互不相交的几何的归并。

把每一个集合可以看作一棵树,主要找到根节点fa[u]=u

合并的就是把它们的根节点的值改变。

# include <iostream>
using namespace std;

const int nmax = 100;
int fa[nmax];

void init(int n) {
    for (int i = 0; i <= n; i++)
        cin >> fa[i];
}

int findFa(int u) {
    if (fa[u] == u) return u;
    fa[u] = findFa(fa[u]);
    return fa[u];
}

void merge(int u, int v) {
    int fau = findFa(u);
    int fav = findFa(v);
    if (fau != fav) fa[u] = fav;
}

 

并查集

原文:http://www.cnblogs.com/IKnowYou0/p/6061607.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!