src/watashi/union-find.hpp
Code
#include <vector>
using namespace std;
struct DisjointSet {
vector<int> p;
void init(int n) {
p.resize(n);
for (int i = 0; i < n; ++i) {
p[i] = i;
}
}
int getp(int i) {
return i == p[i] ? i : (p[i] = getp(p[i]));
}
bool setp(int i, int j) {
i = getp(i);
j = getp(j);
p[i] = j;
return i != j;
}
};
#line 1 "src/watashi/union-find.hpp"
#include <vector>
using namespace std;
struct DisjointSet {
vector<int> p;
void init(int n) {
p.resize(n);
for (int i = 0; i < n; ++i) {
p[i] = i;
}
}
int getp(int i) {
return i == p[i] ? i : (p[i] = getp(p[i]));
}
bool setp(int i, int j) {
i = getp(i);
j = getp(j);
p[i] = j;
return i != j;
}
};
Back to top page