并查集思想
我朋友的朋友还是我的朋友
记录每个点的父亲,也就是两个点有关系选一个当父亲。
先把每个点的父亲设置为自己本身,然后再加入两点有关系时,找到两人的父亲,把两个人的父亲设为父子关系就完成了连通分支的合并。
并查集函数
int un(int root)
{
int son=root;
while(root!=pre[root])
root=pre[root];
while(son!=root)
{
int temp=pre[son];
pre[son]=root;
son=temp;
}
return root;
}