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

题解:洛谷 P2678 [NOIP 2015 提高组] 跳石头

【题目来源】

洛谷:[P2678 NOIP 2015 提高组] 跳石头 - 洛谷 (luogu.com.cn)

【题目描述】

一年一度的“跳石头”比赛又要开始了!

这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有 \(N\) 块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。

为了提高比赛,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳跃距离尽可能长。由于预算限制,组委会至多从起点和终点之间移走 块岩石(不能移走起点和终点的岩石)。

【输入】

第一行包含三个整数 \(L,N,M\),分别表示起点到终点的距离,起点和终点之间的岩石数,以及组委会至多移走的岩石数。保证 \(L\ge 1\)\(N\ge M\ge 0\)

接下来 \(N\) 行,每行一个整数,第 \(i\) 行的整数 \(D_i(0\lt D_i\lt L)\), 表示第 \(i\) 块岩石与起点的距离。这些岩石按与起点距离从小到大的顺序给出,且不会有两个岩石出现在同一个位置。

【输出】

一个整数,即最短跳跃距离的最大值。

【输入样例】

25 5 2 
2
11
14
17 
21

【输出样例】

4

【解题思路】

image

【算法标签】

《洛谷 P2678 跳石头》 #贪心# #二分# #NOIP提高组# #2015#

【代码详解】

#include <bits/stdc++.h>
using namespace std;// 全局变量定义
int length, n, m, a[50005], last;  // length: 道路总长度, n: 已有石头数, m: 可移除石头数// a[]: 存储相邻石头间距, last: 记录上一个石头位置int main()
{// 输入道路总长度、已有石头数和可移除石头数cin >> length >> n >> m;// 初始化上一个石头位置为0(起点)last = 0;// 输入每个石头的位置并计算相邻石头间距for (int i = 0; i < n; i++) {int now;  // 当前石头位置cin >> now;a[i] = now - last;  // 计算当前石头与前一个石头的间距last = now;         // 更新上一个石头位置}// 计算最后一个石头到终点的间距a[n] = length - last;// 特殊情况处理:如果可移除石头数等于已有石头数if (n == m) {cout << length << endl;  // 直接输出道路总长度return 0;}// 二分查找初始化int l = 1, r = length / (n - m);  // l: 最小可能间距, r: 最大可能间距// 二分查找过程while (l <= r) {int tmp, k = 0;  // tmp: 临时累计间距, k: 需要移除的石头数int mid = l + (r - l) / 2;  // 中间值(当前猜测的最小间距)// 检查当前mid是否可行for (int i = 0; i <= n; i++) {tmp = a[i];  // 初始化为当前间距// 如果当前间距小于mid,则合并下一段间距while (tmp < mid && i <= n) {i++;tmp += a[i];  // 合并间距k++;          // 增加需要移除的石头数}}// 根据检查结果调整二分范围if (k <= m) l = mid + 1;  // 移除石头数不足,可以尝试更大的间距else r = mid - 1;         // 移除石头数过多,需要减小间距}// 输出最终结果(最大可能的最小间距)cout << r << endl;return 0;
}

【运行结果】

25 5 2 
2
11
14
17
21
4
http://www.jsqmd.com/news/390094/

相关文章:

  • 构建跨行业三维空间智能治理中枢——矩阵视频融合 × 三角测量 × 数字孪生驱动全域风险前置控制
  • 论文阅读:arxiv 2025 Jailbreaking Attacks vs. Content Safety Filters: How Far Are We in the LLM Safety Ar
  • 复杂场景三维空间主动风险防控与智能调度系统——基于矩阵视频融合的空间级安全感知底座技术白皮书
  • 题解:洛谷 P1163 银行贷款
  • 题解:洛谷 P1182 数列分段 Section II
  • 正规的美团礼品卡回收平台推荐 - 京顺回收
  • 题解:洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树
  • 题解:洛谷 P2440 木材加工
  • 【LeetCode 每日一题】3314. 构造最小位运算数组 I —— (解法二) - 详解
  • 题解:洛谷 P1102 A-B 数对
  • Smoke and Mirrors inspiration
  • 这个时间序列预测模型有点意思,直接上代码更直观。咱们先看看整个模型的架构长啥样
  • 题解:洛谷 P1678 烦恼的高考志愿
  • 行业内服务好的盒马鲜生礼品卡回收平台推荐 - 京顺回收
  • 题解:洛谷 P1024 [NOIP 2001 提高组] 一元三次方程求解
  • 题解:洛谷 P2249 【深基13.例1】查找
  • 信任就是最好的协作:openclaw的系统提示词分析
  • AI大模型高薪方向揭秘:大模型时代,小白也能弯道超车?高薪收藏帖+90天转型路线图免费领!
  • 大模型国家标准落地,大模型应用指南:小白也能掌握的金融科技新趋势,收藏学习必备!
  • 阿里通义千问团队揭秘Gated Attention,让你的大模型学习效率飙升,速收藏!
  • 从DeepSeek到Seedance2.0,大模型集体爆发!国产AI突然跃迁,小白也能轻松上车收藏!
  • 2026大学生转行,推荐一个好就业的方向——人工智能大模型,开启高薪就业新赛道!
  • 【Hot100-Java便捷】:两数之和 (Two Sum) —— 从暴力枚举到哈希表的思维跃迁
  • 键盘与鼠标:人机交互的奥秘深度解析:原理、实战与踩坑记录
  • OpenClaw怎么做到不串台、能并行、还总回对群 amp;#129302;✅(含源码解析)--OpenClaw系列第1期
  • GLM5.0发布:国产算力突破,大模型进化为智能工作系统,速来收藏学习!
  • AI产品经理转行大模型必读,央视都说AI大模型人才缺口大,为什么大家还是找不到工作?
  • Transformer大模型从入门到进阶:25+核心知识点解析(收藏版)
  • 2026主流电商小程序平台深度测评:功能优势与适用场景全解析
  • 论文阅读“EFFICIENT VISION-LANGUAGE-ACTION MODELS FOR EMBODIED MANIPULATION: A SYSTEMATIC SURVEY“