day 53 图论part5

文章目录

  • [卡码网 107. 寻找存在的路线](#卡码网 107. 寻找存在的路线)

卡码网 107. 寻找存在的路线

并查集基础题目,并查集的四种方法,初始化,每一个节点初始化指向自己,join方法,把两个节点加入到同一个集合中,isame方法,判断两个节点是否在同一个集合中,find方法,找到每一个节点的根节点,使用路径压缩。

java 复制代码
import java.util.*;

public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int M = sc.nextInt();
        DisJoint disjoint = new DisJoint(N + 1);
        for (int i = 0; i < M;i++) {
            int s = sc.nextInt();
            int t = sc.nextInt();
            disjoint.join(s, t);
        }
        if (disjoint.isSame(sc.nextInt(), sc.nextInt())) {
            System.out.println("1");
        }
        else {
            System.out.println("0"); 
        }

    }
}

class DisJoint {
        private int[] father;
        public DisJoint(int N) {
            father = new int[N];
            for (int i = 0; i < N; i++) {
                father[i] = i;
            }
        }
        public int find (int n) {
            return n == father[n] ? n : (father[n] = find(father[n]));
        }
        public boolean isSame(int n, int m) {
            n = find(n);
            m = find(m);
            return n == m;
        }
        public void join(int n, int m) {
            n = find(n);
            m = find(m);
            if (n == m) {
                return;
            }
            father[n] = m;
        }
    }
相关推荐
haokan_Jia2 小时前
postgresql实现数据动态地图切片服务
java·服务器·前端
I_LPL2 小时前
hot100 图论专题
算法·图论·dfs·bfs·拓扑排序
014-code2 小时前
Spring Boot 自动配置原理深度解析
java·spring boot·后端·spring
ccLianLian2 小时前
图论·最短路径问题
图论
康小庄2 小时前
JVM学习——Gc Roots
java·jvm·spring boot·学习·spring
sdanss2 小时前
Spring Boot接收参数的19种方式
java·spring boot·后端
金銀銅鐵2 小时前
Byte Buddy 生成的类的结构如何?(第一篇)
java·后端
sxhcwgcy2 小时前
Spring Cloud GateWay搭建
java
umeelove352 小时前
Spring框架
java·后端·spring