并查集:
fa[N] //表示的是第i个元素的父亲节点
1.首先是进行合并操作:
void un(int u,int v)
{
u=fd(u);
v=fd(v);
if(u==v)return -1;//表在同一集合中
if(u>v)fa[u]=v;
else fa[v]=u;//将长的一个集合连到短的上去会时间少点
return 0;
}
2.递归寻找要查找其根节点:
int fd(int x){
if(fa[x]==x)
return x;
else {
fa[x]=fd(fa[x]);//不断路径压缩
return fa[x];
}
}
并查集笔记
最新推荐文章于 2024-10-13 16:55:28 发布