并查集模板

来源:互联网 发布:java工程师累吗 编辑:程序博客网 时间:2024/06/06 21:43

并查集用于判断两元素是否属于同一集合,合并两个不同集合,可用于判断图的连通性

int father[maxn];//存储每个节点的父节点 int getfather(int a)//找到元素在并查集中的根节点 {if(father[a]==a)return a;//如果该元素是并查集中的根节点,那么规定它的父节点为节点本身。(无论它是否是空树) father[a]=getfather(father[a]);//路径压缩,使树不退化成一条链,扁平化每棵树 return father[a]; }void merge(int x, int y)//合并两个元素 {int fx=getfather(x), fy=getfather(y);if(fx!=fy)father[fx]=fy; }



0 0