int p[N]; //存储每个点的祖宗节点 int find(int x)//返回x的祖宗节点 { if (p[x] != x) { p[x] = find(p[x]); } return p[x]; } for (int i = 1; i <= n; i ++ )//初始化 { p[i] = i; } p[find(a)] = find(b); //将a所在的集合合并至b所在的集合