【华为OD机试 C卷】机器人仓库搬砖

  题目描述

机器人搬砖,一共有N堆砖存放在N个不同的仓库中,第i堆砖中有bricks[i]块砖头,要求在8小时内搬完。机器人每小时能搬砖的数量取决于有多少能量格,机器人一个小时中只能在一个仓库中搬砖,机器人的能量格每小时补充一次且能量格只在这一个小时有效,为使得机器人损耗最小化尽量减小每次补充的能量格数 为了保障在8小时内能完成搬砖任务,请计算每小时给机器人充能的最小能量格数。

1、无需考虑机器人补充能量格的耗时,
2、无需考虑机器人搬砖的耗时;
3、机器人每小时补充能量格只在这一个小时中有效;

输入描述

第一行为一行数字 空格分割

输出描述

机器人每小时最少需要冲的能量格 ,若无法完成任务 输出-1

用例
输入    

30 12 25 8 19

输出    

15

输入    

10 12 25 8 19 8 6 4 17 19 20 30

输出    

-1

import math

def min_e(b, H):
    l, r = 1, max(b)
    while l < r:
        m = (l + r) // 2
        if sum(math.ceil(i/m) for i in b) > H:
            l = m + 1
        else:
            r = m
    if sum(math.ceil(i/l) for i in b) > H:
        return -1
    return l

b = list(map(int, input().split()))
print(min_e(b,8))

版权声明:本文为博主作者:KALA51773原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/KALA51773/article/details/134360777

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2024年4月16日
下一篇 2024年4月16日

相关推荐