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

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.xdnf.cn/news/12402.html

相关文章:

  • 常用操作符,操作符相关笔试题(谷歌)及算法的优化(上)
  • C++编程——关于比较器的使用
  • 1panel面板中部署SpringBoot和Vue前后端分离系统 【图文教程】
  • 深入解析YUM与DNF:RPM包管理器的架构演进与功能对比
  • 前端flex、grid布局
  • VS如何编译Zlib库
  • curl获取ip定位信息 --- libcurl-easy(二)
  • 理解非结构化文档:将 Reducto 解析与 Elasticsearch 结合使用
  • Qt生成日志与以及报错文件(mingw64位,winDbg)————附带详细解说
  • Cesium使用glb模型、图片标记来实现实时轨迹
  • 数学:数的概念是如何发展的?
  • 基于IDIG-GAN的小样本电机轴承故障诊断
  • PWN-中级ROP-[HNCTF 2022 WEEK2]ret2csu
  • 紧急调整!亚马逊70%谷歌广告预算转向新渠道
  • 引领AI安全新时代 Accelerate 2025北亚巡展·北京站成功举办
  • Spring Boot 实现流式响应(兼容 2.7.x)
  • 408第一季 - 数据结构 - 栈与队列
  • 实时数据分析的技术架构:Lambda vs Kappa架构选择
  • 如何在CloudCompare中打开pcd文件
  • 使用 Docker Compose 从零部署 TeamCity + PostgreSQL(详细新手教程)
  • 企业版管理工具无法打开(APP)
  • 如何实现安卓端与苹果端互通的多种方案
  • [BJDCTF2020]Easy MD5 1
  • Python打卡训练营day46——2025.06.06
  • 中国制造名牌剃须刀:优质之选,情礼佳物
  • 业务设计需要做好哪几点?
  • 类型注解实战:用 mypy 构建企业级 Python 项目的关键策略
  • 【Dv3Admin】系统视图菜单字段管理API文件解析
  • PLSQLDeveloper配置OracleInstantClient连接Oracle数据库
  • 永磁同步电机控制算法--模糊PI转速控制器