Disjoint set union (DSU)

Правка en3, от snsokolov, 2015-07-31 21:10:55

For the 566D - Реструктуризация компании

Basic Disjoint Set C++ implementation (w/o ranks) using int vector

class DisjointSet{ public:

    vector<int> parent;

    DisjointSet(int n): parent(n) { for(int i=0; i<n; i++) parent[i] = i; }

    void join(int a, int b) { parent[find(b)] = find(a); }

    int find(int a){ return a == parent[a] ? a : parent[a] = find(parent[a]); }

    bool check(int a, int b){ return find(a) == find(b); }
};
Теги dsu, c++, disjoint set

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
en3 Английский snsokolov 2015-07-31 21:10:55 82
en2 Английский snsokolov 2015-07-31 18:40:10 4 Tiny change: 'joint Set implement' -> 'joint Set C++ implement'
en1 Английский snsokolov 2015-07-31 13:03:32 531 Initial revision (published)