#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6;
int father[maxn];
int Find(int x)//寻找根节点
{
if(father[x]==x)return x;
return father[x]=Find(father[x]);
}
void Union(int x,int y)//合并
{
int f1=Find(x),f2=Find(y);
if(f1!=f2)father[f1]=f2;
}
bool check(int x,int y)//判断是否是同一个集合
{
int p1=Find(x),p2=Find(y);
if(p1==p2)return true;
else return false;
}
int main()
{
for(int i=1;i<=maxn;i++)
father[i]=i;
}
并查集模板
最新推荐文章于 2022-10-10 14:42:24 发布