并查集操作

来源:互联网 发布:第一个编程语言 编辑:程序博客网 时间:2024/06/10 03:11
#include <stdio.h>#include <iostream>#include <algorithm>#include <string.h>#include <string>#include <sstream>#include <ostream>#include <stack>#include <queue>#include <cmath>#include <stdlib.h>#include <ctype.h>#include <map>#define inf 1e9+7using namespace std;int fa[1005];int height[1005];void init_union(int n){    for(int i=0;i<n;i++)    {        fa[i]=i;        height[i]=0;    }}int find(int x){    if(fa[x]==x) return x;    else return fa[x]=find(fa[x]);}void unite(int x,int y){    x=find(x);    y=find(y);    if(x==y) return ;    if(height[x]<height[y])        fa[x]=y;    else    {        fa[y]=x;        if(height[y]==height[x]) ++height[x];    }}bool same(int x,int y){    return find(x)==find(y);}

0 0
原创粉丝点击