华为OD机试C卷-- 发广播(20210310)

飞码创造者 2024-06-11 12:35:03 阅读 59

获取题库不需要订阅专栏,可直接私信我进入CSDN领军人物top1博主的华为OD交流圈观看完整题库、最新面试实况、考试报告等内容以及大佬一对一答疑。

题目描述

某地有N个广播站,站点之间有些有连接,有些没有。有连接的站点在接受到广播后会互相发送。

给定一个N*N的二维数组matrix,数组的元素都是字符’0’或者’1’。

matrix[i][j] = ‘1’, 代表i和j站点之间有连接,

matrix[i][j] = ‘0’, 代表没连接,

现在要发一条广播,问初始最少给几个广播站发送,才能保证所有的广播站都收到消息。

输入描述

从stdin输入,共一行数据,表示二维数组的各行,用逗号分隔行。保证每行字符串所含的字符数一样的。

比如:110,110,001。

输出描述

返回初始最少需要发送广播站个数

题目解析

这个问题是一个经典的图论问题,具体是图的连通性问题。我们需要找到图中的连通分量(Connected Components)数量,因为每个连通分量中的节点都可以通过内部连接互相通信,但是不同连通分量之间无法直接通信。因此,我们需要向每个连通分量的至少一个节点发送广播,以确保整个图中的所有节点都能收到广播。

Java算法源码

import java<



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。