并查集的作用:
查询两点是否联通,即两点的关系。
于是在用克鲁斯卡尔建造最小生成树时,可以用并查集判断是否需要加入此边,也可以查询u到v的路径中的最小边权。
并查集可以通过压缩路径进而大大减少复杂度,从而A一题。并查集的实现操作步骤:建立一个新的集合,将包含x和y的动态集合合并为一个新的集合,返回一个指向包含x的集合的代表。
判断元素是否属于同一集合:
bool judge(int x,int y)
{
x = find(x);
y = find(y);
if (x == y) return true;
else return false;
}