蓝桥杯-跳石头

"""
https://www.lanqiao.cn/problems/364/learning/?page=1&first_category_id=1&problem_id=364
"""
L, N, M = map(int, input().split())
D = []
for i in range(N):
  D.append(int(input()))

# 判断最短跳跃距离为x时是否满足要求
def check(x):
  # 什么是合法? 当最短跳跃距离为x时, 移走岩石数量是否不超过M个
  # 当前石头与起点的距离now_idx, 移除数量: cnt
  now_idx = 0
  cnt = 0
  for i in range(N):
    # 此时这块石头跳跃距离小于x, 违反假设, 所以需要移除
    if D[i] - now_idx < x:
      cnt += 1
    else:
      now_idx = D[i]
  # 特判: 最后一个石头跳到终点的距离不能小于x
  if L - now_idx < x:
    return False
  return cnt <= M

ans = 1

# 二分答案
left, right = 1, L
while left <= right:
  mid = (left + right) // 2
  if check(mid):
    ans = mid
    left = mid + 1
  else:
    right = mid - 1
print(ans)

相关推荐

  1. -石头

    2024-04-03 21:36:01       31 阅读
  2. 刷题 二分-[364]石头(C++)

    2024-04-03 21:36:01       36 阅读
  3. 备战8.快乐的

    2024-04-03 21:36:01       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-03 21:36:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-03 21:36:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-03 21:36:01       87 阅读
  4. Python语言-面向对象

    2024-04-03 21:36:01       96 阅读

热门阅读

  1. Linux Shell,遍历数组或文件的几种不同写法

    2024-04-03 21:36:01       34 阅读
  2. 执行SQL分析打印

    2024-04-03 21:36:01       35 阅读
  3. 人工智能常用的编程语言有哪些?

    2024-04-03 21:36:01       37 阅读
  4. 蓝桥杯_阅读魔法书(字符串匹配)

    2024-04-03 21:36:01       38 阅读
  5. 01---webpack的基础篇

    2024-04-03 21:36:01       34 阅读
  6. 蓝桥杯软件测试赛项--自动化测试

    2024-04-03 21:36:01       31 阅读
  7. Sentinel

    Sentinel

    2024-04-03 21:36:01      25 阅读
  8. 【AHK v2】数据结构LinkedList实现示例

    2024-04-03 21:36:01       31 阅读
  9. Array.from() 与 Array.reduce()

    2024-04-03 21:36:01       29 阅读
  10. Composer 常见错误解决

    2024-04-03 21:36:01       32 阅读
  11. Unity3D 基于ECS的技能冷却系统设计与实现

    2024-04-03 21:36:01       36 阅读
  12. 干掉极域电子教室的方法

    2024-04-03 21:36:01       30 阅读