【华为OD机试题】某农场主管理了一大片果园,fields[i]表示不同果林的面积,单位:( m 2 m^2 m2), 现在要为所有的果林施肥且必须在 n 天之内完成,否则影响收成。

这是一道华为在线测评题目,涉及果园管理问题。农场主需在n天内为不同面积的果林施肥,输入包括果林面积fields和天数n。提供了一个名为day_jisuan的python函数计算所需天数,以及根据n和fields处理不同情况的结果。
摘要由CSDN通过智能技术生成

某农场主管理了一大片果园,fields[i]表示不同果林的面积,单位:( m 2 m^2 m2),
现在要为所有的果林施肥且必须在 n 天之内完成,否则影响收成。

import math
def day_jisuan(k, fields):
days = 0
for i in range(len(fields)):
days += math.ceil(fields[i] / float(k))
return days

nums = list(map(int,input().split()))
n = nums[1]
fields = list(map(int,input().split()))
if n>len(fields):
fields.sort()
left = 0
right = fields[len(fields) - 1]

result = -1
while (left + 1 < right):
    # 取中间位置的值作为效能k,
    k = int(math.ceil(float(left + right) / 2))

    res = day_jisuan(k, fields)

    if (res - n > 0):
        left = k
    else:
        result = k
        right = k
print(result)

elif n == len(fields):
print(max(fields))
else:
print(-1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值