发广播

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String[] temp = scanner.nextLine().split(" ");
        int n = temp.length;
        int[][] map = new int[n][n];
        for (int i = 0; i < n; i++) {
            map[0][i] = Integer.parseInt(temp[i]);
        }
        for (int i = 1; i < n; i++) {
            for (int j = 0; j < n; j++) {
                map[i][j] = scanner.nextInt();
            }
        }

        // 对每个服务器遍历
        ArrayList<HashSet<Integer>> res = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            HashSet<Integer> set = new HashSet<>();
            if (res.size() == 0){
                set.add(i);
                dfs(set, map, i);
            }
            for (HashSet<Integer> s :
                    res) {
                if (!s.contains(i)) {
                    set.add(i);
                    dfs(set, map, i);
                    break;
                }
            }
            if (set.size() > 0){
                res.add(set);
            }
        }
        System.out.println(res);

    }

    private static void dfs(HashSet<Integer> set, int[][] map, int i) {
        for (int j = 0; j < map.length; j++) {
            if (map[i][j] == 1 && !set.contains(j)) {
                set.add(j);
                dfs(set, map, j);
            }
        }
    }

全部评论
是可以建立通信的吗
点赞 回复 分享
发布于 2022-08-11 14:48

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务