笔试-果园施肥
- 开源代码
- 2025-09-04 20:15:02

应用
某农场主管理一大片果园,fileds[i]表示第i片果林的面积,单位m^2。小布要在n天之内完成施肥工,每次选择一片果林进行施肥,并且当天施肥完成后不再进行其他施肥作业。 施肥机的能效为k,单位m^2/day,请问最小k为多少才能顺利完成任务,如果无法完成任务返回-1。
实现 str1 = input("请输入fileds的元素个数m、施肥期限天数n:").split() MN = [int(i) for i in str1] m = MN[0] n = MN[1] str2 = input("请输入果林面积fileds:").split() fileds = [int(i) for i in str2] def calculate_days(size, k): day = 0 while day*k < size: day = day + 1 return day def calculate_k(fileds, k, n): days = [] for i in range(0, len(fileds)): need_day = calculate_days(fileds[i], k) days.append(need_day) sum = 0 for i in range(0, len(days)): sum = sum + days[i] if sum <= n: print(k) # return k else: k = k + 1 calculate_k(fileds, k, n) # return calculate_k(fileds, k, n) if n < m: print(-1) else: k = 1 calculate_k(fileds, k, n) # print(calculate_k(fileds, k, n))上一篇
Groovy语言的学习路线
下一篇
算法【贪心经典题目专题3】