华为OD机试统一考试D卷C卷 - 员工派遣(C++ Java JavaScript Python C语言)

华为OD机考:统一考试 D卷 + C卷 + B卷 +A卷

真题目录:华为OD机考机试 真题目录(C卷 + D卷 + B卷 + A卷) + 考点说明

题目描述

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

现在,代号为 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的员工(他们的I

  • 20
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YOLO大王

你的打赏,我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值