1 条题解

  • 0
    @ 2025-10-28 9:10:00

    题目大意

    有两台机器:

    • 第一台:启动时间 aa 分钟,启动后每分钟生产 xx 个零件
    • 第二台:启动时间 bb 分钟,启动后每分钟生产 yy 个零件
    • 限制:两台机器不能同时处于启动过程
    • 总时间:kk 分钟

    求最多能生产多少个零件。

    解题思路

    这是一个典型的贪心调度问题。由于只有两台机器,我们可以枚举所有可能的启动顺序:

    三种主要情况:

    1. 只启动一台机器:选择启动时间不超过 kk 且生产效率更高的机器
    2. 启动两台机器:必须满足 ka+bk \geq a + b,且有两种启动顺序:
      • 先启动第一台,再启动第二台
      • 先启动第二台,再启动第一台

    生产时间计算:

    • 先启动第一台

      • 第一台生产时间:kak - a
      • 第二台生产时间:kabk - a - b(需等待第一台启动完成)
      • 总产量:(ka)×x+(kab)×y(k - a) \times x + (k - a - b) \times y
    • 先启动第二台

      • 第二台生产时间:kbk - b
      • 第一台生产时间:kabk - a - b(需等待第二台启动完成)
      • 总产量:(kb)×y+(kab)×x(k - b) \times y + (k - a - b) \times x

    复杂度分析

    • 时间复杂度O(1)O(1),只有常数次比较和计算
    • 空间复杂度O(1)O(1),只使用几个变量

    关键点

    1. 时间非负检查:确保生产时间不小于0
    2. 启动顺序枚举:比较两种顺序的优劣
    3. 边界情况:考虑只启动一台机器的情况
    4. 数据范围:使用 long long 防止溢出
    • 1

    信息

    ID
    4340
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    2
    已通过
    1
    上传者