并查集 模板

来源:互联网 发布:java重载与多态 编辑:程序博客网 时间:2024/06/10 16:38



并查集模板

#include<stdio.h>#include<iostream>const int N=1000; using namespace std;int ptr[N];// 结点的上级int find(int x)//查找上级 {int r=x;while(pre[r]!=r)// 上级不是自己{r=pre[r];//逐级上查 } int k = x,j;        //暂存 结点     while(k != r)//掌门不是自己 非递归路径压缩操作    {        j = pre[k];     //用j暂存pre[k]的父节点        pre[k] = r;     //pre[x] 指向掌门 更换掌门         k = j;          //k移到父节点    }return r;//直到找到 自己的上级 }int join(int x,int y)//并 上级  {int fx=find(x);//两个人的上级 int fy=find(y);if(fx!=fy)pre[fx]=fy;// 两个人把其中的一个人分到另一个人的门下 }int main(){return 0;}


0 0