最新华为OD机试真题-LYA的生日聚会(100分)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员

✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解

👏 感谢大家的订阅➕ 和 喜欢💗

最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线评测

最新华为OD机试目录: https://www.nowcoder.com/discuss/636153620743897088?sourceSSR=users

📎在线评测链接

LYA的生日聚会(100分)

alt

🌍 评测功能需要 =>订阅专栏<= 后联系清隆解锁~

🍓OJ题目截图

alt

🍏 LYA的生日聚会

问题描述

LYA要举办一个生日聚会,邀请了 位朋友参加。但是,由于最近流感病毒正在肆虐,LYA希望找出可能被感染的人群,以便及时采取防控措施。根据流行病学调查和大数据分析,得到了每个人之间是否有过密切接触的信息。现在已知一组确诊病例的编号 ,请你帮助LYA找出哪些人需要进行病毒检测,并输出需要检测的人数。注意,确诊病例本身不需要再做检测。

需要进行病毒检测的人,是指在病毒传播链条上的所有人员,即所有可能被确诊病例直接或间接传染的人。例如,如果A是确诊病例,A和B有过接触,B和C有过接触,C和D有过接触,那么B、C、D都需要进行病毒检测。

输入格式

第一行包含一个正整数 ,表示总人数。

第二行包含若干个用逗号隔开的正整数,表示确诊病例的编号。

接下来 行,每行包含 个用逗号隔开的数字,其中第 行的第 个数字表示编号为 的人是否与编号为 的人有过密切接触。数字为1表示有过接触,为0表示没有接触。

输出格式

输出一个整数,表示需要进行病毒检测的人数。

样例输入

5
1,2
1,1,0,1,0
1,1,0,0,0
0,0,1,0,1
1,0,0,1,0
0,0,1,0,1

样例输出

3

样例解释

在这个样例中,总共有5个人,编号分别为0到4。其中,编号为1和2的人是确诊病例。根据接触信息,我们可以发现:

  • 编号为1的人和编号为0的人有过接触;
  • 编号为0的人和编号为3的人有过接触;
  • 编号为2的人和编号为4的人有过接触。

因此,编号为0、3、4的人都可能被感染,需要进行病毒检测。所以输出3,表示总共有3个人需要检测。

数据范围

  • 人员编号从0开始

题解

我们可以使用深度优先搜索(DFS)或广度优先搜索(BFS)来找出所有可能被感染的人。首先,将所有确诊病例加入到一个集合中,作为初始的感染者集合。然后,遍历每个人,如果这个人与任何一个已经在感染者集合中的人有过接触,就将其加入到感染者集合中。重复这个过程,直到感染者集合不再扩大为止。最后,感染者集合的大小减去初始确诊病例的数量,就是需要进行病毒检测的人数。

参考代码

  • Python
n = int(input())
confirmed = set(map(int, input().split(',')))
contact = [list(map(int, input().split(','))) for _ in range(n)]

def num_to_test(n, confirmed, contact):
    infected = confirmed.copy()
    for i in range(n):
        for j in range(n):
            if contact[i][j] == 1 or contact[j][i] == 1:
                if i in infected:
                    infected.add(j)
                if j in infected:
                    infected.add(i)
    return len(infected) - len(confirmed)

print(num_to_test(n, confirmed, contact))
  • Java
import java.util.*;

public class Main {
    public st

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

最新华为OD机试-E+D卷 文章被收录于专栏

本专栏给大家提供了华为2024最新华为OD-E/D卷的题目汇总和(Java/Cpp/Python)三语言解析 + 部分题目提供OJ在线评测

全部评论

相关推荐

07-17 12:24
牛客_运营
#考公#牛牛今天的解答来啦!牛牛发现好多想进体制内的宝子不清楚遴选究竟是什么🔥牛牛今天给大家总结好了,看完你就懂了!✅什么是遴选?遴选是挑选、选拔之意,遴选全称是公务员公开遴选,指市(地)级以上机关从下级机关公开择优选拔任用内设机构公务员,是公务员内部的竞争性转任和选拔,也是一次“二次择优”的机会。✅遴选特点(一)遴选是公务员转任的一种重要方式,很大的一个特点是上级机关直接向下级基层机关选人,可越级遴选,遴选通过人员工作单位的级别将有很大的提高。(二)遴选包含了职务平调和提拔两种可能。遴选更多的时候是职务的平调,科员职位遴选科员,这就有点等同于选调。也有一些遴选职位是选拔的,遴选成功职务将得到晋升,科员的可以遴选为副主任科员,副科的可以遴选为主任科员,这就有点等同于公开选调,但遴选的都为内设机构公务员。(三)遴选要求有基层工作经历。《公务员公开遴选办法(试行)》(中组发〔2013〕7号)规定参加公开遴选的公务员应当具有2年以上基层工作经历和2年以上公务员工作经历,我们简称为“双2经历”。部分岗位要求在现任岗位的任期不得少于2年。✅遴选资格条件(一)具有公务员身份且在行政编制、公务员岗位;(二)政治素质良好,品行端正;(三)勤奋敬业,工作能力强;(四)大学本科以上文化程度;(五)公务员年度考核均为称职以上等次;(六)具有正常履行职责的身体条件;(七)符合拟遴选职位要求的其他资格条件。具有下列情形之一的,不得参加公开遴选:尚在试用期内的;受处分期间或者未满影响期限的;正在接受审计、纪律审查,或者涉嫌犯罪,司法程序尚未终结的;法律、法规和政策规定的其他情形。✅遴选需要准备材料同意报考证明只是刚刚开了个头,还要准备包括但不限于以下材料:1)部分地区的同意报考证明(或报名表)是要求编制主管部门同意报考并盖章。2)要求编制管理权限经主管部门审核盖章,那么就需要地区组织部门同意盖章。3)提供登记表,还得找主管部门。4)最低服务年限或满最低服务年限证明材料。5)由现工作单位党组织出具党组织关系证明材料。6)所在单位纪检组或纪检部门门提供个廉洁自律情况材料。✅遴选考试题型客观题+主观题;主观题客观题一般有单选、多选、填空、判断,在一些专业试卷例如纪委考试,还有以案例题形式出现的客观题;主观题一般有简答、论述、公文写作、材料分析/案例分析、大作文。中央机关遴选全部是主观题,分A卷B卷,副处长和一级至四级调研员公开遴选职位和公开选调职位,考案例分析与对策性论文一科(A类),一级主任科员及以下职级公开遴选职位考案例分析一科(B类)省直遴选考试一般为主观题,极少省直遴选考客观题。市直遴选考试中,考客观题的地区较多主观题是必考题。简答题、论述题大家耳熟能详。材料分析/案例分析是什么?可以看做是公务员考试中的申论,但是考察方向又与申论有所区别。✅遴选之后遴选并不能一劳永逸假使遴选上岸了,未来可能也要面临着更高的工作要求、更大的工作压力、另起炉灶的生活节奏······考上之后发现不适应选择回原单位的大有人在。但这么个折腾法,并不是一个好的人生规划。就像罗翔老师说的“任何选择你都会后悔,这是必然的,因为人的选择一定是不充分理性的,人做不到充分理性的选择”。#牛客在线求职答疑中心#
点赞 评论 收藏
分享
1 1 评论
分享
牛客网
牛客企业服务