根据Slyar的博客
并查集三个基本函数:make find union
两个优化:find的时候进行状态压缩,union时将数量少的并到数量多的集合上
find 递归版本:
int Find_Set(int x)
{
if (x != parent[x])
{
parent[x] = Find_Set(parent[x]);
}
return parent[x];
}
并查集的基础应用:
POJ 1611 :AC
POJ 2524 :AC
POJ 1182
最小生成树Kruskal算法并查集应用:
POJ 1258
POJ 1251
POJ 1681