下面是并查集的主要结构代码,即模板:
int pa[MAXN];
// 创建集合
void make_set(int size) {
for(int i=1;i<=size;i++)
pa[i] = i;
}
// 查
int find_set(int x) {
if(x==pa[x]) return x;
pa[x]=find_set(pa[x]);
return pa[x];
}
// 并
void union_set(int x,int y) {
x=find_set(x);
y=find_set(y);
pa[y]=x;
}
我们所需要的一般只是在上面加一些判断状态变量或者是记录状态的数组,大体结构不变。点击打开链接这位博主对并查集的介绍可谓是很详细易懂了。