Union-Find

김진수·2024년 5월 18일

Algorithm

목록 보기
5/5

코드

Find 함수

int f(int i) {
	if (p[i] == i) return i;
	return p[i] = f(p[i]); //p 배열의 깊이를 줄일 수 있음
}

Merge 함수

void merge(int a, int b) {
	a = f(a), b = f(b);
	if (a != b) p[b] = a;
}
bool merge(int a, int b) {
	a = f(a), b = f(b);
	if(a == b) return false; //이미 같은 그룹
	p[b] = a;
	return true; //새로 묶음
}

관련 문제들

https://www.acmicpc.net/problem/1717

profile
https://www.jinsoolve.com 으로 블로그 이전했습니다.

0개의 댓글