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

OD 算法题 B卷【猴子吃桃】

文章目录

  • 猴子吃桃

猴子吃桃

  • 猴子喜欢吃桃,桃园有N棵桃树,第i棵桃树上有Ni个桃,看守将在H(>=N)小时后回来;
  • 猴子可以决定吃桃的速度K(个/小时),每个小时他会选择一棵桃树,从中吃掉K个桃,如果这棵树上的桃数小于K,他将吃掉这棵树上所有的桃,然后这一小时内不再吃其余桃树上的桃;
  • 猴子喜欢慢慢吃,但仍想在看守回来之前吃完所有的桃;
  • 求猴子可以在H小时内吃掉所有桃子的最小速度K(K为整数)

输入描述:
输入一行数字,前面的数字表示每颗树桃子的个数,最后一个数表示H小时;
输出描述:
吃掉所有桃子的最小速度K(整数) 或者输入异常时输出-1

示例1
输入:
3 11 6 7 8
输出:
4

示例2
输入:
10 20 14 23 21 45 31 7
输出:
45

python实现:

  • 二分法,选择一个合适的K整数速度;

import matherror = Falsearr = list(map(int, input().strip().split()))
h = arr.pop()
n = len(arr)# 输入异常
if h < n or any([i <= 0 for i in arr]):error = Truedef eat_up(k):""" 根据当前的速度k, 在h小时内能否吃完 """global arr, hused_h = 0for i in arr:used_h += math.ceil(i / k)return used_h <= h# 最小速度
left = 1
right = sum(arr)  # 最大速度 (一小时吃完)
while left <= right:mid = (left + right) // 2if eat_up(mid):# 能在H小时内吃完,则降低速度right = mid - 1else:left = mid + 1if error:print(-1)
else:print(left)
http://www.dtcms.com/a/235414.html

相关文章:

  • 事件监听 ——CAD C#二次开发
  • MySQL提升
  • 大模型模型部署和暴露接口
  • Langchain4j 整合向量数据库(10)
  • 字符串 金额转换
  • 【MATLAB去噪算法】基于ICEEMDAN联合小波阈值去噪算法
  • 第21讲、Odoo 18 配置机制详解
  • 进行用户VMware官网注重中一直无法登录,该怎么处理
  • ai流式文字返回前端和php的处理办法
  • 【python深度学习】Day 46 通道注意力(SE注意力)
  • 【Redis】分布式锁的介绍与演进之路
  • Guava LoadingCache 使用指南
  • C++11新增标准讲解(上)
  • 阿里开源千问3向量模型 超越Google与OpenAI
  • Bootstrap 3.5 框架文件结构与 API 使用指南
  • 【Linux】Linux 进程间通讯-管道
  • 新闻速递|Altair 与佐治亚理工学院签署合作备忘录,携手推动航空航天领域创新
  • 制作电子相册
  • 职业生涯思考
  • 【AI】传统导航地图和智驾地图的区别
  • 智能心理医疗助手开发实践:从技术架构到人文关怀——CangjieMagic情感医疗应用技术实践
  • Webpack的基本使用 - babel
  • 【应用】Ghost Dance:利用惯性动捕构建虚拟舞伴
  • javascript中Cookie、BOM、DOM的使用
  • 大数据量高实时性场景下订单生成的优化方案
  • 前端删除评论操作(局部更新数组)
  • 第二届智慧教育与计算机技术国际学术会议(IECT 2025)
  • 【001】frida API分类 总览
  • Tesseract配置参数详解及适用场景(PyTesseract进行OCR)
  • GAN模式奔溃的探讨论文综述(一)