NO4——并查集

 1 int find(int x)
 2 {
 3     int r = x;
 4     while(father[r]!=r)
 5     r = father[r];
 6     return r;
 7 }
 8 /*
 9 int find(int x)
10 {
11     if(father[x] == x)
12     return x;
13     else
14     return father[x] =find(father[x]);
15 }
16 */
17 
18 void join(int x,int j)
19 {
20     int fx = find(x),fy = find(y);
21     if(fx!=fy)
22     father[fx] = fy;
23 }
24 
25 void Union(int x,int y)
26 {
27     int rx,ry;
28     rx = find(x);
29     ry = find(y);
30     father[rx] = ry;
31 }
原文地址:https://www.cnblogs.com/xzxl/p/7305619.html