1 #define MAX_N 10000 2 3 int par[MAX_N]; 4 5 //并查集初始化,初始化n个元素 6 void init(int n) 7 { 8 for(int i=0;i<n;i++) 9 par[i]=i; 10 } 11 12 //并查集查询操作,查询树的根 13 int Find(int x) 14 { 15 if(par[x]==x) 16 return x; 17 return par[x]=Find(par[x]); 18 } 19 20 //并查集合并操作,合并x和y所属集合 21 void Unite(int x,int y) 22 { 23 x=Find(x); 24 y=Find(y); 25 if(x!=y) 26 par[y]=x; 27 }