【A卷2022Q4】计算至少需要多少个快递主站点(华为od2023机试真题JAVA+JS)

这是一道华为OD2023机试真题,要求计算在给定的快递站点网络中,至少需要选择多少个主站点,以便能够通过中转覆盖所有站点的业务。题目提供了输入输出描述以及两个满分代码实现,分别使用JAVA和JavaScript语言。
摘要由CSDN通过智能技术生成

更多试卷真题,点击:华为OD2023真题试卷列表,刷题必点

计算至少需要多少个快递主站点

 时间限制:1s 空间限制:256MB 限定语言:不限

题目描述:

快递业务范围有N个站点,A站点与B站点可以中转快递,则认为A-B站可达,如果A-B可达,B-C可达,则A-C可达。现在给N个站点编号0、1、…n-1,用s[i][j]表示i-j是否可达,s[i][j]=1表示i-j可达,s[i][j]=0表示i-j不可达。

现用二维数组给定N个站点的可达关系,请计算至少选择从几个主站点出发,才能可达所有站点(覆盖所有站点业务)。

说明:s[i][j]与s[j][i]取值相同。

输入描述:

第一行输入为N,N表示站点个数。
之后N行表示站点之间的可达关系,第i行第j个数值表示编号为i和j之间是否可达。

输出描述:

输出站点个数,表示至少需要多少个主站点。

补充说明:

1<N<10000

示例1

输入:

4

1 1 1 1

1 1 1 0

1 1 1 0

1 0 0 1

输出:

1

说明:

选择0号站点作为主站点,0站点可达其他所有站点,所以至少选择1个站点作为主站才能覆盖所有站点业务。

示例2

输入:

4

1 1 0 0

1 1 0 0

0 0 1 0

0 0 0 1

输出:

3

说明:

选择0号站点可以覆盖0、1站点,选择2号站点可以覆盖2号站点,选择3号站点可以覆盖3号站点,所以至少选择3个站点作为主站才能覆盖所有站点业务。

JAVA代码满分

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
 
public class Main {
   
    public static int[][] square;
 
    public static void main(String[] args) {
   
 
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        square = 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值