尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

二分答案——洛谷P2678 跳石头

二分答案——洛谷P2678 跳石头
📅 发布时间:2026/7/28 1:23:33

洛谷P2678 跳石头 题解

题目概述

在一条长度为L的笔直河道中,起点在0位置,终点在L位置。起点和终点之间有 N 块岩石,每块岩石的位置已知且按升序给出。

现在,你可以移走最多M块岩石(不能移走起点和终点的岩石),目标是让选手在跳跃过程中,所有相邻岩石之间的最短跳跃距离尽可能大。你需要输出这个最大的最短跳跃距离。

分析

暴力模拟会非常耗时,显然行不通。用直接模拟也十分困难。但是我们发现,这是一个典型的最小值最大问题,而且答案具有一定的范围(\([1,l]\)),可以尝试去二分答案,看看答案是否单调:我们发现,如果通过移走\(\le\)M块石头满足了一个最短跳跃距离,那么一定可以通过某种方案满足任意的比它更小的最短跳跃距离,反之,如果一个最短跳跃距离无法实现,那么比他跟大的也一定无法实现。

所以,我们可以通过二分去找到最大的可行值。记某一猜测值为res,核心在与怎么判断res是可行的,也就是check函数。我们知道,移走一块与它前面一块岩石的距离本就比res大的岩石,结果是不会变的,也就是说,我们需要处理那些原先与前一块岩石的距离就比res短的,把它移走,才能满足条件,同时,在搬走所有有影响的岩石后,我们还有注意有一个M限定着,所以如果最后总共搬走的石头数量超过了限制的M,就可以确定res是一个不可行值。

AC代码

#include <iostream>
#include <algorithm>
using namespace std;
const int N = 5e4 + 5;
int l, n, m;
int dist[N];bool check(int x)
{int cnt = 0;  // 记录完成目标需要移走的石头数量int last = 0; // 上一个要保留的石头距起点的位置,初始为起点for (int i = 1; i <= n + 1; i++){if (dist[i] - last < x) // 小于目标,不满足,需要移走这块石头{cnt++;}else{last = dist[i]; // 保留这块石头,更新last}}return cnt <= m;
}int main()
{cin >> l >> n >> m;dist[0] = 0;dist[n + 1] = l;for (int i = 1; i <= n; i++){cin >> dist[i];}// 二分答案int left = 1, right = l + 1;while (left + 1 < right){int mid = (left + right) >> 1;if (check(mid)){left = mid;}else{right = mid;}}cout << left << endl;
}

总结

看到最大的最小值或者最小的最大值,一般是二分答案

相关新闻

  • 聚焦2026市场 不锈钢圆钢实用选购推荐指南 - 起跑123
  • 电动车走什么物流便宜?2026年Top5品牌实测推荐 - 快递物流资讯
  • 2026 年至今,仙桃可靠的加厚曝气盘生产厂家怎么联系,别再花冤枉钱!养鱼增氧的这款好物,竟能省一半还不堵盘?-新水源水处理材料 - 企业推荐管【认证】

最新新闻

  • Claude模型选择指南:Opus、Sonnet、Haiku的成本效益与场景化应用
  • 【通义千问私有化部署终极 checklist】:NVIDIA A10/A800/H20适配清单、国产信创环境兼容矩阵、安全审计必检项(含等保2.0合规对照表)
  • 从零理解强化学习:核心概念、算法演进与PPO、DQN等实战入门
  • League Akari:英雄联盟玩家的终极效率工具
  • 2026 年新发布:金坛值得关注的宣传片拍摄公司工作室哪家好,拍出爆款:揭秘顶级宣传片背后的秘密 - 企业推荐官【认证官方】
  • 全球高分辨率降水估计数据集(静止轨道 (GEO) 卫星观测数据)

日新闻

  • 力旷智能:伺服驱动系统在制药收瓶设备中的应用解析
  • 2026 网安入门避坑指南,零基础如何避开无效学习直接上手实战
  • 揭秘CFC项目:如何通过手机摄像头实现850kbps无网络文件传输

周新闻

  • 大连理工大学与东京大学联手打造的“主动型AI助手“
  • 170.2026年国家级科研瓶颈:超精密单点金刚石切削(SPDT)光学表面生成
  • SongBloom:革命性歌曲生成框架深度解析——如何通过交织自回归与扩散模型创作完整音乐

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号