3
1
可以先并查集存一下,然后路径压缩,重新枚举求解
int find(int x)
{
if(!f[x])
return x;
f[x]=find(f[x]);
return f[x];
}
int insert(int x,int y)
{
if(find(x)!=find(y))
{
f[find(x)]=find(y);
return 1;
}
return 0;
}
0
int insert(int x,int y)
{
if(find(x)!=find(y))
{
f[find(x)]=find(y);
return 1;
}
return 0;
}
0
0
int find(int x)
{
if(!f[x])
return x;
f[x]=find(f[x]);
return f[x];
}
int insert(int x,int y)
{
if(find(x)!=find(y))
{
f[find(x)]=find(y);
return 1;
}
return 0;
}
0
0
int find(int x)
{
if(!f[x])
return x;
f[x]=find(f[x]);
return f[x];
}
int insert(int x,int y)
{
if(find(x)!=find(y))
{
f[find(x)]=find(y);
return 1;
}
0
0
0
0
0