• 算法之并查集基础


    算法之并查集

    首先解释一下并查集是什么,并查集就是判断两个元素是不是同一个集合里,如果不是同一个集合,就将两个元素合并。

    并查集里经常用到的操作有查找和合并。

    首先需要初始化

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

    查找代码(加上了路径压缩)

    int findx(int x)
    {
        if(x!=fa[x])fa[x]=findx(fa[x])
            return fa[x];//这里用到了递归
    }
    

    合并代码

    void unity(int x,int y)
    {
    int x1=findx(x);//找到与x的祖先
    int y1=findx(y);//找到y的祖先
        if(x1!=y1)//如果x的祖先和y的祖先不是同一个人
            fa[x1]=y1;//则合并
    }
    
  • 相关阅读:
    C++赌博游戏
    数据挖掘--数据准备
    非线性维归约Isomap
    ClampedCubicSpline
    Romberg算法
    列表与数组
    HttpClient调用webApi时注意的小问题
    Week4
    Week3
    Week2
  • 原文地址:https://www.cnblogs.com/a821403286/p/13620372.html
Copyright © 2020-2023  润新知