본문 바로가기

공부합시다

Union-find (disjoint set)

 

새로운 걸 배웠다

 

 

 

코드가 간단해서 너무 좋다

 

vector<int> parent;

void    init(int n)
{
    parent.resize(n + 1);

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

int     find(int x)
{
    if (x == parent[x])
        return x;
    return (parent[x] = find(parent[x]));
}

void    merge(int x, int y)
{
    x = find(x);
    y = find(y);
    
    parent[x] = y;
}

 

'공부합시다' 카테고리의 다른 글

BFS 너비 우선 탐색  (0) 2020.07.18
DFS 깊이 우선 탐색  (0) 2020.03.28
N queen  (0) 2020.02.19
이차원벡터 선언  (0) 2019.12.29
lower_bound, upper_bound  (0) 2019.11.25