个人的并查集模板
public class Main {
static int n;
static int[] parent;
public static void main(String[] args) {
}
//初始化
static void init (){
for (int i = 0; i < n; i++) {
parent[i]=i;
}
}
//查找根
static int find(int u){
if (u== parent[u]){
return u;
}
//路径压缩
parent[u]=find(parent[u]);
return parent[u];
}
//判断是否同集合
static boolean isSame(int a,int b){
return find(a)==find(b);
}
//添加
static void join(int a,int b){
a=find(a);
b=find(b);
if (a==b){
return;
}
parent[a]=b;
}
}
static int n;
static int[] parent;
public static void main(String[] args) {
}
//初始化
static void init (){
for (int i = 0; i < n; i++) {
parent[i]=i;
}
}
//查找根
static int find(int u){
if (u== parent[u]){
return u;
}
//路径压缩
parent[u]=find(parent[u]);
return parent[u];
}
//判断是否同集合
static boolean isSame(int a,int b){
return find(a)==find(b);
}
//添加
static void join(int a,int b){
a=find(a);
b=find(b);
if (a==b){
return;
}
parent[a]=b;
}
}
全部评论
相关推荐
点赞 评论 收藏
分享
02-07 20:17
门头沟学院 Java 点赞 评论 收藏
分享