int findfather(int x)
{
return par[x]=par[x]==x?x:findfather(par[x]);
}
bool unite(int a, int b)
{
int fa=findfather(a), fb=findfather(b);
if(fa==fb)
return false;
if(high[fa]>high[fb])
par[fb]=fa;
else
{
par[fa]=fb;
if(high[fa]==high[fb])
++high[fb];
}
return true;
}
用high平衡

727

被折叠的 条评论
为什么被折叠?



