2023华为OD机试真题【计算快递业务主站点/回溯法/深度优先搜索】

2023-11-09

题目描述

快递覆盖的范围有N的站,如果A和B都可以用来中转,我们就称A-B站可达。如果A-B可达,B-C可达,则A-C达。我们现在有N个编号,如果s[i][j] =1,表示i-j可达,如果s[i][j] =0,表示i-j不可达。现用二维数组给定N个站点的可达关系,请计算至少选择从几个主站点出发,才能可达所有站点(覆盖所有站点业)
说明: s[i][j] 与s [j][i] 取值相同
输入描述:
第一行输入为N,N表示站点个数之后N行表示站点之间的可达关系,第i行第i个数值表示编号为i和之间是否可达输出描述:
输出站点个数,表示至少需要多少个主站点
补充说明:
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个站点作为主站才能覆盖所有站点业务。

解题思路

siteCount表示站点数量,关系矩阵connectivityMatrix表示站点之间的可达性关系。coveredSites表示已覆盖站点。遍历所有站点,对于尚未覆盖的站点:
tempSet存储当前站点能覆盖的站点。然后深度优先遍历找到所有可达站点,并存到tempSet中。然后将te

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2023华为OD机试真题【计算快递业务主站点/回溯法/深度优先搜索】 的相关文章