zoukankan      html  css  js  c++  java
  • 并查集

    我转过一篇写的非常棒的并查集算法具体解释

    地址:http://blog.csdn.net/a2459956664/article/details/50614096

    int par[maxn]  //父亲
    int rank[maxn]  //树的高度
    
    //初始化n个元素
    void init(int n)
    {
        for (int i= 0; i < n; i++){
            par[i] = i;
            rank[i] = 0;
        }
    }
    
    //查询树的根
    int find(int x)
    {
        if (par[x] == x){
            return x;
        }
        else{
            return par[x] = find(par[x]);
        }
    }
    
    //合并x和y所属的集合
    void unite(int x, int y)
    {
        x = find(x);
        y = find(y);
        if (x == y)
            return;
        if (rank[x] < rank[y]){
            par[x] = y;
        }
        else{
            par[y] = x;
            if (rank[x] == rank[y])
                rank[x]++;
        }
    }
    
    //推断x和y是否属于同一个集合
    bool same(int x, int y)
    {
        return find(x) == find(y);
    }
    


  • 相关阅读:
    http
    VUE-1
    AJAX
    html常用标签
    CSS网页布局
    概念整理3
    SEO
    概念整理2
    var
    概念整理
  • 原文地址:https://www.cnblogs.com/yfceshi/p/7141678.html
Copyright © 2011-2022 走看看