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. Jmeter 使用自定义变量
  2. 角色权限(Role)和系统权限(System)的几个澄清实验
  3. 1028: 在霍格沃茨找零钱
  4. Xshell 连接本地的Linux 系统,提示:Could not connect to '192.168.182.128' (port 23): Connection failed
  5. 使用Chrome的inspect element注意事项
  6. 苹果内部文件曝光:iPhone SE3以外,还有大惊喜...
  7. select weui 动态加载数据_浪尖以案例聊聊spark3的动态分区裁剪
  8. 金融科技火热无比时,支付场景下的风控可以怎么做?(下)
  9. 中间件配置文件-redis
  10. iOS开发之NSURLSession/NSURLConnection HTTP load failed 的解决办法
  11. 算法 -- 四种方法获取的最长“回文串”,并对时间复杂进行分析对比PHP
  12. yii验证在一个数组内_PHP实现一个轻量级容器
  13. 使用Python进行局域网传输文件两种方法
  14. word批量设置图片大小和对齐,使用宏定义
  15. 用Python爬取拉钩网招聘职位信息
  16. 摆动序列算法C语言,376 摆动序列 leetcode
  17. 2018年8月win10教育版education最新激活密钥
  18. 磨金石教育分享||想转行学习插画,应该怎么做,需要什么基础?
  19. 启动计算机引导windows10,Win10系统引导项丢失了怎么办?修复Win10系统启动引导项的方法...
  20. matlab求解多自由度振动系统,【2017年整理】1-《机械振动基础》大作业,基于matlab的多自由度振动.doc...

热门文章

  1. cisco(思科)交换机配置篇【二】
  2. 职场上被人针对要不要告诉领导
  3. 戴尔惠普联想笔记本性价比(戴尔和联想笔记本性价比)
  4. (转) 咖啡猫的至理名言
  5. 大学计算机372=多少Q,计算机网络Q0831
  6. 还记得那一场说开始就开始的恋爱吗?
  7. oracle10g 学习笔记上
  8. 网页制作-第一周-任务1_1网页和网站的概念
  9. 【小程序源码】uni-app云开发的网盘助手抓取网盘资源
  10. oracle的switch+case语句吗,2.7 switch 语句中的 case 范围