int p[n];//查找find函数
int find(int x)
{
if(p[x]!=x)p[x]=find(p[x]);
return p[x];
}
感觉这么写更好一些
int find(int x)
{
return p[x]==x?x:p[x]=find(p[x]);
}
利用寄存器保留一次的性质
可以这么写 不过有的oj不支持
int find(int x)
{
if(p[x]!=x)p[x]=find(p[x]);
}
//初始化(各自是一个集合)
for(int i = 1;i <= n;i++)p[i]=i;
// 合并a和b所在的两个集合(把a祖先归到b祖先)
p[find(a)] = find(b);
return p[x]==x?x:p[x]=find(p[x]);
这样写力扣会报错
woc???真的假的,我没用过力扣,不是很了解