查询x的所属集合
int find(int x)
{
if (father[x] == x)
return x;
father[x] = find(father[x]);
return father[x];
}
i 与 j 两个集合合并
void relate(int i, int j)
{
i = find(i);
j = find(j);
if (i != j)
father[j] = i;
}
赋初值
for (int i = 1; i <= 1000000; ++i)
father[i] = i;