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

【每日一A】2015NOIP真题 (二分+贪心) python


题目概述


在起点和终点之间有n个石头,移除某些(不超过m个)石头后,让石头间的距离最大。
求石头间的最短距离d的最大值


跳石头


点此跳转 https://www.lanqiao.cn/problems/364/learning/?page=1&first_category_id=1&status=2&sort=difficulty&asc=0

在这里插入图片描述
在这里插入图片描述


思路分析:

最小值最大化想到二分答案法:
二分法确定d的值
贪心筛选石头

题解:

def check(x):
    cnt = 0
    last_idx = 0
    for i in d:
        if i - last_idx < x:
            cnt += 1
        else:
            last_idx = i
    if l - last_idx < x:
        cnt += 1
    return cnt <= m


l, n, m = map(int, input().split())
d = []
for _ in range(n):
    d.append(int(input()))

left, right = 1, l
ans = -1
while left <= right:
    mid = (left + right) // 2
    if check(mid):
        ans = mid
        left = mid + 1
    else:
        right = mid - 1

print(ans)


END
如果有更多问题或需要进一步的帮助,可以在评论区留言讨论哦!
如果喜欢的话,请给博主点个关注 谢谢


http://www.kler.cn/a/524935.html

相关文章:

  • 具身智能研究报告
  • HTML特殊符号的使用示例
  • 【leetcode】T1599
  • OpenCV:开运算
  • JAVA实战开源项目:蜗牛兼职平台(Vue+SpringBoot) 附源码
  • 大数据Hadoop入门3
  • 第24篇 基于ARM A9处理器用汇编语言实现中断<六>
  • sqlzoo答案5-SUM and COUNT
  • MATLAB中lettersPattern函数用法
  • python学opencv|读取图像(五十)使用addWeighted()函数实现图像加权叠加效果
  • 【JavaWeb06】Tomcat基础入门:架构理解与基本配置指南
  • 【Hadoop】Hadoop 概述
  • 选择的阶段性质疑
  • 冯诺依曼系统及操作系统
  • C#通过3E帧SLMP/MC协议读写三菱FX5U/Q系列PLC数据案例
  • Python面试宝典7 | 正则表达式的match()与search(),精准匹配与全局搜索
  • Spring MVC 框架:构建高效 Java Web 应用的利器
  • LeetCode:343. 整数拆分
  • MyBatis 框架:简化 Java 数据持久化的利器
  • LLM:BERT or BART 之BERT
  • Vue3 结合 .NetCore WebApi 前后端分离跨域请求简易实例
  • JavaScript_02 表单
  • UE AController
  • Go语言的栈空间管理
  • 使用 Confluent Cloud 的 Elasticsearch Connector 部署 Elastic Agent
  • 全面解析文件包含漏洞:原理、危害与防护