Essential Data Structures and Algorithmic Templates
A classic strcuture for managing dynamic connectivity and equivalence classes.
Initialization
int parent[N];
void initUnionFind() {
for (int i = 1; i <= n; ++i) {
parent[i] = i;
}
}
Path Compression Find
int findRoot(int x) {
return parent[x] == x ? x : parent[x] = findRoot(parent[x]);
}
Union by Root
void unite(int a, ...
Posted on Wed, 12 Aug 2026 16:17:03 +0000 by dibyajyotig