并查集

原创 2015年11月17日 20:50:09

本文章仅供作者复习代码,不提供教程(要说教程,小的真的不会啊),所以有小伙伴勿入请火速离开,以免寻砖砍死作者造成不必要的麻烦。



并查集的实现:

int par[MAX_N]; //父亲
int height[MAX_N];//树的高度


//初始化n个元素

void init(int n){
    for(int i=0; i<n; i++){
        par[i] = i; //将每个初始化的点的父亲设置为自己本身即代表该点为孤立的点
        height[i] = 0;//初始化时,每个点的高度均为0
    }
}

//查询树的根节点,并且在查询过程中,进行路径压缩

int find(int x){
    if(par[x] == x){
        return x;//如果x是孤立的点,那么它的根节点就是它本身
    }else{
        return par[x] = find(x); // 递归找x的根节点,找到之后,x的父节点直接设置为根节点
    }
}

//合并两个节点
void unite(int x,int y){
    x = find(x);
    y = find(y);
    if(x == y)return;//如果两点本来就连通,则返回。

    if(height[x]<height[y]){
        par[x] = y;     //如果x的树的高度比y的小,则把x附在y上
    }else{
        par[y] = x;
        if(height[x] == height[y])height[x]++; //如果两者高度相同的话,把么合并后,高度必增长1
    }
}


//判断x,y是否属于同一集合


bool same(int x, int y){return find(x) == find(y);}



版权声明:虽然为本人原创,但是写得真是渣,想转就转,反正我也不是鸣人。

并查集代码

  • 2015年12月12日 20:18
  • 1KB
  • 下载

ACM并查集讲解的深化和扩展

  • 2016年07月01日 17:27
  • 1.58MB
  • 下载

杭电1269迷宫城堡(二维并查集过)

迷宫城堡 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub...

并查集初步(黄劲松).ppt

  • 2015年04月01日 15:45
  • 424KB
  • 下载

并查集.ppt

  • 2015年08月11日 20:50
  • 833KB
  • 下载

CCF CSP 地铁修建 最小生成树+并查集

A市有n个交通枢纽,其中1号和n号非常重要,为了加强运输能力,A市决定在1号到n号枢纽间修建一条地铁。   地铁由很多段隧道组成,每段隧道连接两个交通枢纽。经过勘探,有m段隧道作为候选,两个交通枢纽之...

并查集的讲解

  • 2014年03月08日 19:33
  • 256KB
  • 下载

并查集讲义

  • 2014年08月08日 18:14
  • 556KB
  • 下载

并查集(Union-Find)算法介绍

本文主要介绍解决动态连通性一类问题的一种算法,使用到了一种叫做并查集的数据结构,称为Union-Find。 更多的信息可以参考Algorithms 一书的Section 1.5,实际上本文也就是...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:并查集
举报原因:
原因补充:

(最多只允许输入30个字)