nickel2halide

Union Find

Dec 14th, 2012
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.22 KB | None | 0 0
  1. int find(int u) {
  2.     if (parent[u] == u) return u;
  3.     return parent[u] = find(u);
  4. }
  5.  
  6. void union(int u, int v) {
  7.     u = find(u), v = find(v);
  8.     if (rk[u] < rk[v]) swap(u, v);
  9.     parent[v] = u;
  10.     rk[u] = max(rk[u], rk[v] + 1);
  11. }
Advertisement
Add Comment
Please, Sign In to add comment