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

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.lryc.cn/news/2403441.html

相关文章:

  • 汽车安全体系:FuSa、SOTIF、Cybersecurity 从理论到实战
  • Excel-vlookup -多条件匹配,返回指定列处的值
  • Python异步爬虫与代理完美结合
  • 惠普HP Deskjet 9600 打印机信息
  • Hive的Parquet格式优化方法
  • ADI硬件笔试面试题型解析下
  • 服务器租用:高防CDN和加速CDN的区别
  • 吃透 Golang 基础:数据结构之 Map
  • ABP VNext 与 Neo4j:构建基于图数据库的高效关系查询
  • 数论——同余问题全家桶3 __int128和同余方程组
  • leetcode47.全排列II:HashSet层去重与used数组枝去重的双重保障
  • 5.Nginx+Tomcat负载均衡群集
  • React项目的状态管理:Redux Toolkit
  • 跨界破局者鲁力:用思辨与创新重塑汽车流通行业标杆
  • Druid连接池实现自定义数据库密码加解密功能详解
  • OS11.【Linux】vim文本编辑器
  • 基于SFC的windows系统损坏修复程序
  • 强化学习基础概念图文版笔记
  • k8s下离线搭建elasticsearch
  • WAF绕过,网络层面后门分析,Windows/linux/数据库提权实验
  • Oracle杀进程注意事项
  • Vue 3 弹出式计算器组件(源码 + 教程)
  • 监测预警系统重塑隧道安全新范式
  • solidity中sar和>>的区别
  • ESP32与STM32
  • vue在打包的时候能不能固定assets里的js和css文件名称
  • 用设计模式重新思考(类FSM)验证:从混乱到优雅
  • 技巧小结:外部总线访问FPGA寄存器
  • Qt客户端技巧 -- 窗口美化 -- 圆角窗口
  • Go语言爬虫系列教程5:HTML解析技术以及第三方库选择