并查集

来源:互联网 发布:古代人有多可怕 知乎 编辑:程序博客网 时间:2024/06/04 15:59
#define MAX 10000int set[MAX];int rank[MAX];// Initializevoid init(){for (int i = 0; i < MAX; ++i) set[i] = i;}// Findint findSet(int v){if (set[v] != v) set[v] = findSet(set[v]);return set[v];}// Union by Rankbool joinSet(int x, int y){int fx = findSet(x), fy = findSet(y);if (fx == fy) return true;if (rank[fx] > rank[fy]) set[fy] = fx;else{set[fx] = fy;if (rank[fx] == rank[fy]) ++rank[fy];return false;}}

原创粉丝点击