华为OD机试统一考试D卷C卷 - 员工派遣

题目描述

某公司部门需要派遣员工去国外做项目。

现在,代号为 x 的国家和代号为 y 的国家分别需要 cntx 名和 cnty 名员工。

部门每个员工有一个员工号(1,2,3,......),工号连续,从1开始。

部长派遣员工的规则:

  • 规则1:从 [1, k] 中选择员工派遣出去
  • 规则2:编号为 x 的倍数的员工不能去 x 国,编号为 y 的倍数的员工不能去 y 国。

问题:

找到最小的 k,使得可以将编号在 [1, k] 中的员工分配给 x 国和 y 国,且满足 x 国和 y 国的需求。

输入描述

四个整数 x,y,cntx,cnty。

  • 2 ≤ x < y ≤ 30000
  • x 和 y 一定是质数
  • 1 ≤ cntx, cnty < 10^9
  • cntx + cnty ≤ 10^9

输出描述

满足条件的最小的k

用例

输入 2 3 3 1
输出 5
说明 输入说明:2 表示国家代号23 表示国家代号33 表示国家2需要3个人1 表示国家3需要1个人

解题思路

题目的问题是:要找到一个最小的k,使得在遵守上述规则的情况下,可以从编号在[1, k]中的员工中选择足够的员工派遣到x国和y国,满足他们的需求。

输入数据的解释如下:

  • 2 表示员工的ID如果是2的倍数,就不能派遣到国家X。
  • 3 表示员工的ID如果是3的倍数,就不能派遣到国家Y。
  • 3 表示国家X需要3个员工。
  • 1 表示国家Y需要1个员工。

我们需要找到一个最小的员工ID,使得在[1, ID]的范围内,能够找到至少3个可以派遣到国家X的员工和至少1个可以派遣到国家Y的员工。

在这个例子中,员工ID为5是满足条件的最小值。因为在[1, 5]的范围内,可以找到3个可以派遣到国家X的员工(他们的ID是1, 3, 5),以及1个可以派遣到国家Y的员工(他的ID是1)。所以,输出结果是5。

这段代码使用了二分查找法(Binary Search)来寻找满足特定条件的最小员工ID。二分查找法是一种在有序集合中查找特定元素的搜索算法,通过每次比较中间元素来缩小搜索范围,从而提高查找效率。

这里的特定条件是:在排除不能同时为两个国家工作的员工后,剩余的员工数量能满足两个国家的需求。

  1. 二分查找法

    • 初始化搜索范围,下限为两国员工需求之和,上限为一个大数(例如10亿)。
    • 在每次循环中,计算搜索范围的中间值 midStaffID
    • 根据 midStaffID 判断是否满足条件,然后调整搜索范围。如果满足条件,缩小上限;否则,增大下限。
    • 重复上述过程,直到找到满足条件的最小 midStaffID
  2. 排除法

    • 计算在1到 midS 范围内,不能同时为两个国家工作的员工数量。

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

华为OD机试刷题 文章被收录于专栏

华为OD机试刷题记录机考算法题库,帮助你上岸华为。提供C++/Java、JavaScript、Python四种语言的解法。

全部评论

相关推荐

浙江远算科技有限公司(简称“远算科技”)是一家以工业软件技术和新一代信息技术为核心的工业数字科技企业,是国家高新技术企业、国家鼓励的重点软件企业和国家级专精特新“小巨人”企业。远算科技以“算法国产化,应用场景化,算力云端化”为发展目标,深耕国产CAE工业软件、工业APP、数字孪生等数字化转型产品与解决方案。公司技术团队由国家高性能计算和并行算法专家陈国良院士领衔指导,以「高性能计算HPC」、「数值仿真CAE」和「人工智能AI」为核心技术能力,已获得发明专利40余项。公司与全球行业龙头企业包括法国电力集团EDF、中航工业集团等携手打造行业数字化转型最佳实践。公司目前已服务能源、汽车、航空、水利、机械等行业标杆客户,未来将持续开辟更多行业应用场景,全面提升产业数字化水平。【远算团队简介】—整体学历高:远算员工硕士以上比例接近60%,海外留学归国比例20%,技术人员占人员总数比例70%。博士8人,院士工作站1个—背景多元化:有来自国外Facebook、微软等硅谷一线的世界顶尖计算机人才,有来自于世界级工业竞争力的大型欧洲工业企业的技术团队,有来自智能制造及工业软件的精英人才,还有来自如华为、腾讯、阿里、百度、网易等国内领先大厂的优秀同事,以及来自核电设备所、各省各地水利水电勘测设计院等国央企得优秀人才【人才观】1、&nbsp;人才是资本,不是耗材。我们是人力资本驱动的经得起商业验证的极致科技创新公司。2、不选“各方面都可以”的“五好青年”,欢迎“才华横溢的怪胎”。3、&nbsp;敏感敏捷,开放包容。4、&nbsp;“把手弄脏”:工程师文化,成年人组织。5、&nbsp;认识你自己,展示你自己,实现你自己。--我们是一群根本乐观,相信奇迹,创造奇迹的人,在中国工业数字化改革的进程中,我们一起热爱、投入、探索
腾讯公司氛围 101人发布 投递微软等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务