并查集学习:
public class Main3{
//并查集
//getMore: http://blog.csdn.net/u011487593/article/details/48526743
static int[] pre = new int[1000];//根节点的话等于自己
public int Find(int x){ //查找根节点
int fx = x;
while(pre[fx] != fx){
fx = pre[fx];
}
//路径压缩
int i = x,j;
while(pre[i]!=fx){
j = pre[i];
pre[i] = fx;
i = j;
}
return fx;
}
public void join(int x ,int y){
int fx = Find(x);
int fy = Find(y);
if(fx!=fy){
pre[fx] = fy;
}
}