Java解P2678 [NOIP2015 提高组] 跳石头,有图有注释,通俗易懂
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 提高组] 跳石头,有图有注释,通俗易懂相关推荐
- P2678 [NOIP2015 提高组] 跳石头
P2678 [NOIP2015 提高组] 跳石头 题目背景 一年一度的"跳石头"比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选 ...
- 信息学奥赛一本通 1890:【15NOIP提高组】跳石头 | 洛谷 P2678 [NOIP2015 提高组] 跳石头
[题目链接] ybt 1890:[15NOIP提高组]跳石头 洛谷 P2678 [NOIP2015 提高组] 跳石头 ybt 1247:河中跳房子 OpenJudge NOI 1.11 10:河中跳房 ...
- 【题解】P2678 [NOIP2015 提高组] 跳石头
题目背景 一年一度的"跳石头"比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间 ...
- 洛谷P2678 [NOIP2015 提高组] 跳石头
传送门:https://www.luogu.com.cn/problem/P2678 非常同意一个观点:二分答案由二分区间和judge函数构成 二分答案,顾名思义,就是找到答案的范围区间,然后在这个区 ...
- 2015 提高组 跳石头--二分答案
题目背景 一年一度的"跳石头"比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间 ...
- 洛谷-神奇的幻方-NOIP2015提高组复赛
题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,--,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. ...
- P2615 [NOIP2015 提高组] 神奇的幻方
题目描述 幻方是一种很神奇的 N\times NN×N 矩阵:它由数字 1,2,3,\cdots \cdots ,N \times N1,2,3,⋯⋯,N×N 构成,且每行.每列及两条对角线上的数字之 ...
- 【NOIP2015提高组】信息传递
题目背景 NOIP2015 提高组 Day1 T2 题目描述 有 n 个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为 i 的同学的信息传递对象是编 ...
- [NOIP2015 提高组] 神奇的幻方 ——C++
[NOIP2015 提高组] 神奇的幻方 题目描述 幻方是一种很神奇的 N∗NN*NN∗N 矩阵:它由数字 1,2,3,⋯⋯ ,N×N1,2,3,\cdots \cdots ,N \times N1, ...
最新文章
- 一位年龄 35 的前饿了么同事,退休了!
- java一句话木马连接_webshell一句话木马大全
- 【机器学习】NeuralProphet,这个时序工具包也太强了吧...
- 那些 IT 界的神翻译,原来我学不好编程的原因就在这
- python画旋转圆_Python使用PyQt界面库绘制不停旋转的圆控件
- 黑鲨游戏手机2 Pro外观设计曝光:或将新增两条LED灯带
- coc跑团san数值规则_【COC跑团】对一些技能属性的解释(个人向)
- [转]人像识别是个伪命题
- 一些同样适用于人生的计算机原理
- 玉柴spn码故障对照表_玉柴共轨电喷发动机故障码一览表
- 软考分类精讲-软件管理
- android绘画时钟,Android画个时钟玩玩
- redis lettuce 调优
- FullCalendar日历控件vue使用记录
- 【CSS3 transition】解决元素高度不固定时,设置transition不生效的问题
- 解决浏览器看不到Flash文档(尤其某慕课)
- Hexo 靜態博客使用指南
- 学成在线 课程 页面
- notepad++怎么解决光标变成下划线的问题?
- jmeter逻辑控制器之如果(if)控制器实战(二)