当前位置: 首页 > wzjs >正文

网站建设有什么好处郑州机械网站建设

网站建设有什么好处,郑州机械网站建设,组建一个公司网络方案,查询网站相关网址题目描述 孙悟空爱吃蟠桃,有一天趁着蟠桃园守卫不在来偷吃。已知蟠桃园有 N 棵桃树,每颗树上都有桃子,守卫将在 H 小时后回来。 孙悟空可以决定他吃蟠桃的速度K(个/小时),每个小时选一颗桃树,…

题目描述

孙悟空爱吃蟠桃,有一天趁着蟠桃园守卫不在来偷吃。已知蟠桃园有 N 棵桃树,每颗树上都有桃子,守卫将在 H 小时后回来。

孙悟空可以决定他吃蟠桃的速度K(个/小时),每个小时选一颗桃树,并从树上吃掉 K 个,如果树上的桃子少于 K 个,则全部吃掉,并且这一小时剩余的时间里不再吃桃。

孙悟空喜欢慢慢吃,但又想在守卫回来前吃完桃子。

请返回孙悟空可以在 H 小时内吃掉所有桃子的最小速度 K(K为整数)。如果以任何速度都吃不完所有桃子,则返回0。

输入描述
第一行输入为 N 个数字,N 表示桃树的数量,这 N 个数字表示每颗桃树上蟠桃的数量。

第二行输入为一个数字,表示守卫离开的时间 H。

其中数字通过空格分割,N、H为正整数,每颗树上都有蟠桃,且 0 < N < 10000,0 < H < 10000。

输出描述
吃掉所有蟠桃的最小速度 K,无解或输入异常时输出 0。

用例

输入2 3 4 5
4
输出5
说明
输入2 3 4 5
3
输出0
说明
输入30 11 23 4 20
6
输出23
说明

孙悟空吃蟠桃问题的最优解:二分查找的应用

核心解题思路

题目要求找到孙悟空能在H小时内吃完所有蟠桃的最小速度K(整数)。这里的难点在于,如何高效地找到满足条件的最小K值。经过分析,可以发现这个问题非常适合使用二分查找来解决。

关键观察点:
  1. 范围确定:速度K的最小值为1,最大值为桃树中最多桃子数max_pile(当K≥max_pile时,每棵树最多1小时)。
  2. 时间计算:对于给定K,总时间=所有桃树的桃子数除以K向上取整之和。
  3. 单调性:当K增大时,总时间减少。因此可以使用二分法快速缩小范围。
  4. 边界条件
    • 若H < 桃树数量N,直接返回0(每棵树至少需要1小时)。
    • 最小可能的K值应满足总桃子数sum除以H的向上取整(确保每小时吃够量)。

解题步骤详解

1. 输入处理与边界检查

首先读取输入并验证有效性。若输入异常或H < N,直接返回0。

2. 确定搜索范围
  • 左边界left:最大值为sum(piles)/H的向上取整,保证每小时吃够总量。
  • 右边界right:桃树中最大桃子数max_pile。
3. 二分查找最小K值

遍历可能的K值,计算每个K对应的总时间:

  • 若总时间≤H,尝试更小K(调整右边界)。
  • 若总时间>H,必须增大K(调整左边界)。
4. 验证并返回结果

最终检查找到的K是否有效,若无解则返回0。

代码实现

import mathdef main():try:# 读取输入piles = list(map(int, input().split()))H = int(input())# 输入验证if H <= 0 or len(piles) == 0 or any(p <= 0 for p in piles):print(0)returnn = len(piles)if H < n:print(0)returntotal = sum(piles)max_pile = max(piles)# 计算左边界left = math.ceil(total / H)right = max_pileif left > right:print(0)returnmin_k = None  # 记录符合条件的K# 二分查找while left <= right:mid = (left + right) // 2time = 0for p in piles:time += math.ceil(p / mid)if time > H:breakif time <= H:# 当前mid可行,尝试更小的Kmin_k = midright = mid - 1else:# 需要增大Kleft = mid + 1if min_k is not None:print(min_k)else:print(0)except:print(0)if __name__ == "__main__":main()

案例分析

示例1:

输入:2 3 4 5H=4

  • 总和sum=14,ceil(14/4)=4,max_pile=5 → left=4, right=5。
  • 二分找到K=5时总时间为4小时,符合条件。
示例3:

输入:30 11 23 4 20H=6

  • ceil(88/6)=15,max_pile=30 → 搜索范围15~30。
  • 二分找到K=23时总时间6小时,符合条件。

总结

通过二分法快速缩小搜索范围,结合合理的边界条件确定,能够高效解决此类速度最优化问题。该算法的时间复杂度为O(N log max_pile),适用于题目给定的数据范围。


文章转载自:

http://ZthSvKoW.ywLzb.cn
http://DWU8anxH.ywLzb.cn
http://qNpzWNHQ.ywLzb.cn
http://9LUCZCnv.ywLzb.cn
http://G1rsFGMz.ywLzb.cn
http://spVsnpGo.ywLzb.cn
http://wD9suGn2.ywLzb.cn
http://1igF7t3a.ywLzb.cn
http://ijZ9s0Zl.ywLzb.cn
http://LqF8WZkC.ywLzb.cn
http://LbwVBtfB.ywLzb.cn
http://UA9gKU9I.ywLzb.cn
http://x96a8XGc.ywLzb.cn
http://A8V7dJj0.ywLzb.cn
http://QeqAyIA7.ywLzb.cn
http://TZH4XqFn.ywLzb.cn
http://4YL1aCl2.ywLzb.cn
http://1gVfPODk.ywLzb.cn
http://9gMGU5aR.ywLzb.cn
http://uBdcGCjp.ywLzb.cn
http://ak7SPOk5.ywLzb.cn
http://Nn7JMeW6.ywLzb.cn
http://hphCKfrf.ywLzb.cn
http://oLKz5hE5.ywLzb.cn
http://Oxbmg4Fr.ywLzb.cn
http://JdER2989.ywLzb.cn
http://GTxgIvuu.ywLzb.cn
http://Y9iAxKKP.ywLzb.cn
http://aJixhFOY.ywLzb.cn
http://x5vKaBv5.ywLzb.cn
http://www.dtcms.com/wzjs/679513.html

相关文章:

  • php网站开发需求文档佛山做网站
  • 长沙flash网站制作网站建设十一要点
  • 做期货与做网站的关系工商网站如何做企业增资
  • wordpress搭建付费网站wordpress 首页视频
  • 怎么查看网站备案wordpress 购物
  • 中国移动的网站模板网站发展方向
  • 建设网站的重要意义免费网站可以做cpa?
  • 网站app封装怎么做网站建设主要问题
  • 赣州市南康区建设局网站桂林两江四湖附近酒店
  • 想学做网站要去哪里学常平小学网站建设
  • 宿州做网站的有吗做羊水亲子鉴定网站
  • wordpress安装网站安徽网
  • 网站备案 不备案wordpress博客 登录
  • 网站源码交易平台代码衬衫定做公司
  • 长春seo公司网站免费的行情网站app代码
  • wordpress服装模板广州网站关键词优化推广
  • 个人可以架设网站吗修改wordpress rss
  • 工作室网站域名本地搭建linux服务器做网站
  • 整站优化包年开发小网站排名
  • 成都市高新区规划建设局网站南昌网站公司
  • wordpress网站公司怎么注册自己的网站
  • 技智网站建设小编进销存十大软件
  • 做网站项目如何实现支付网站如何做信息表
  • 7黄页网站建设各类大型网站建设
  • 哪些网站可以做微信推送建站公司 长沙和西安
  • 在沈阳做一个展示网站多少钱廊坊网站建设策划
  • 免费只做网站现在企业做网站一般用什么框架
  • 电子商务网站建设描述商业机构的网址
  • 北京网络公司建站黄冈做网站技术支持的
  • 自己做图网站视频拍摄报价单