01.题目及链接

题目链接:https://www.luogu.com.cn/problem/P2678

02.解题思路

对两个石头之间的最短距离mid进行二分枚举,初始时left=0,right=起点到终点的距离,

  • mid=(l=r)>>1,当移除石头的数量大于n时,right=mid-1
  • mid=(l=r)>>1,当移除石头的数量大于n时,left=mid
  • 最终mid就是石头之间的最短距离

03.具体实现

具体代码

public class Main {static int[] data;static int l,n,m;public static void main(String[] args) {Scanner in=new Scanner(System.in);l=in.nextInt();//l:起点到终点的距离n=in.nextInt();//n:起点到终点的岩石数m=in.nextInt();//m:移走的石头数data=new int[n+1];for (int i = 1; i <= n; i++) {data[i]=in.nextInt();}int res=0;int left=1,right=l;while (left<=right) {int mid=(left+right)>>1;//mid是石头的之间的最小距离(两个石头之间的距离>=mid)if(judge(mid)) {res=mid;left=mid+1;}else {right=mid-1;}}System.out.println(res);}//当移除石头数量<=m时,返回trueprivate static boolean judge(int mid) {//num为长度为mid时最终移除的石头的数量  now可以看作当前站在第几个石头上    i可以看作是前面的石头int num=0,i=0,now=0;while (i<n) {i++;if(data[i]-data[now]<mid) {//前面石头的距离与当前石头的距离<mid移除num++;}else {now=i;}}return num<=m;}}

DeBug分析

04.深入练习

  • https://www.luogu.com.cn/problem/CF371C
  • https://www.luogu.com.cn/problem/P1314

05.二分套路总结

https://blog.csdn.net/qq_46237746/article/details/123813308

Java解P2678 [NOIP2015 提高组] 跳石头,有图有注释,通俗易懂相关推荐

  1. P2678 [NOIP2015 提高组] 跳石头

    P2678 [NOIP2015 提高组] 跳石头 题目背景 一年一度的"跳石头"比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选 ...

  2. 信息学奥赛一本通 1890:【15NOIP提高组】跳石头 | 洛谷 P2678 [NOIP2015 提高组] 跳石头

    [题目链接] ybt 1890:[15NOIP提高组]跳石头 洛谷 P2678 [NOIP2015 提高组] 跳石头 ybt 1247:河中跳房子 OpenJudge NOI 1.11 10:河中跳房 ...

  3. 【题解】P2678 [NOIP2015 提高组] 跳石头

    题目背景 一年一度的"跳石头"比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间 ...

  4. 洛谷P2678 [NOIP2015 提高组] 跳石头

    传送门:https://www.luogu.com.cn/problem/P2678 非常同意一个观点:二分答案由二分区间和judge函数构成 二分答案,顾名思义,就是找到答案的范围区间,然后在这个区 ...

  5. 2015 提高组 跳石头--二分答案

    题目背景 一年一度的"跳石头"比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间 ...

  6. 洛谷-神奇的幻方-NOIP2015提高组复赛

    题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,--,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. ...

  7. P2615 [NOIP2015 提高组] 神奇的幻方

    题目描述 幻方是一种很神奇的 N\times NN×N 矩阵:它由数字 1,2,3,\cdots \cdots ,N \times N1,2,3,⋯⋯,N×N 构成,且每行.每列及两条对角线上的数字之 ...

  8. 【NOIP2015提高组】信息传递

    题目背景 NOIP2015 提高组 Day1 T2 题目描述 有 n 个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为 i 的同学的信息传递对象是编 ...

  9. [NOIP2015 提高组] 神奇的幻方 ——C++

    [NOIP2015 提高组] 神奇的幻方 题目描述 幻方是一种很神奇的 N∗NN*NN∗N 矩阵:它由数字 1,2,3,⋯⋯ ,N×N1,2,3,\cdots \cdots ,N \times N1, ...

最新文章

  1. 一位年龄 35 的前饿了么同事,退休了!
  2. java一句话木马连接_webshell一句话木马大全
  3. 【机器学习】NeuralProphet,这个时序工具包也太强了吧...
  4. 那些 IT 界的神翻译,原来我学不好编程的原因就在这
  5. python画旋转圆_Python使用PyQt界面库绘制不停旋转的圆控件
  6. 黑鲨游戏手机2 Pro外观设计曝光:或将新增两条LED灯带
  7. coc跑团san数值规则_【COC跑团】对一些技能属性的解释(个人向)
  8. [转]人像识别是个伪命题
  9. 一些同样适用于人生的计算机原理
  10. 玉柴spn码故障对照表_玉柴共轨电喷发动机故障码一览表
  11. 软考分类精讲-软件管理
  12. android绘画时钟,Android画个时钟玩玩
  13. redis lettuce 调优
  14. FullCalendar日历控件vue使用记录
  15. 【CSS3 transition】解决元素高度不固定时,设置transition不生效的问题
  16. 解决浏览器看不到Flash文档(尤其某慕课)
  17. Hexo 靜態博客使用指南
  18. 学成在线 课程 页面
  19. notepad++怎么解决光标变成下划线的问题?
  20. jmeter逻辑控制器之如果(if)控制器实战(二)

热门文章

  1. 如何拆分PDF成多个文件?这样拆分非常简单
  2. Android高手秘笈之View的挂载
  3. 全球首只AIGC动画短片发行,日漫风格超治愈!
  4. 鼠标没有唤醒计算机功能,怎么设置碰到鼠标电脑不会唤醒亮起来
  5. 下载firefox国际版
  6. 只有7步,就能将任何魔方6面还原
  7. unity3D---插件obi Rope---实现绳子效果
  8. Recon-NG进行信息收集
  9. 方法重写的一大两小两同
  10. 小锦的软件评测师备考笔记