并查集
void make(int x)
{
for (int i = 0; i <= x; i++)
p[i] = i;
}
int find(int x)
{
if (x != p[x])
p[x] = find(p[x]);
return p[x];
}
void unio(int x, int y)
{
int px = find(x);
int py = find(y);
if (px == py)
return;
p[px] = py;
}
bool same(int x, int y)
{
return find(x) == find(y);
}
并查集
最新推荐文章于 2024-03-18 16:16:39 发布