题目背景

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

题目描述

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

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

输入格式

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

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

输出格式

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

输入输出样例

输入

25 5 2
2
11
14
17
21

输出

4

说明/提示

输入输出样例 1 说明:将与起点距离为 2和 14 的两个岩石移走后,最短的跳跃距离为 4(从与起点距离 17 的岩石跳到距离 21 的岩石,或者从距离 21 的岩石跳到终点)。

另:对于 20%的数据,0 ≤ M ≤ N ≤ 10

对于%50%的数据,0 ≤ M ≤ N ≤ 100

对于 100%的数据,0 ≤ M ≤ N ≤ 50,000,1 ≤ L ≤1,000,000,000

代码

#include<bits/stdc++.h>
using namespace std;
int L,n,m,a[50010];
bool check(int x)
{int now=0,num=0;for (int i=1;i<=n;i++){if (a[i]-a[now]<x) num++;else now=i;if (num>m) return false;}return true;
}
int half(int l,int r)
{while (l+1<r){int mid=(l+r)/2;if (check(mid)==true) l=mid;else r=mid;}if (check(r)==true) return r;else return l;
}
int main()
{cin>>L>>n>>m;    for (int i=1;i<=n;i++) cin>>a[i];cout<<half(1,L);return 0;
}

【题解】P2678 [NOIP2015 提高组] 跳石头相关推荐

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

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

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

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

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

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

  4. Java解P2678 [NOIP2015 提高组] 跳石头,有图有注释,通俗易懂

    01.题目及链接 题目链接:https://www.luogu.com.cn/problem/P2678 02.解题思路 对两个石头之间的最短距离mid进行二分枚举,初始时left=0,right=起 ...

  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. 图论分析方法gretna_基于磁共振的多模态分析对血管性认知障碍患者脑网络的研究...
  2. base64是哪个jar包的_如何通过一个类名找到它属于哪个jar包?
  3. python smtp 群发邮件
  4. Struts2中使用Session的两种方法
  5. C++中的RAII机制
  6. 恢复误删数据(SQL Server 2000)--Log Explorer
  7. python 中用什么键缩进 —— tab 还是空格?
  8. Windows API的时间结构体、时间转换及时间获取
  9. 开发中的坑:MQ 也能做 RPC 调用?
  10. arm ida 伪代码 安卓 符号表_IDA 制作 sig文件 gdb 导入符号表
  11. 解决Ubuntu vim 中文乱码
  12. python数据库实现注册函数_10.注册和登录功能实现(3)—— 注册数据写入数据库...
  13. python中的作用域_python 模块的作用域
  14. st算法 求区间最值问题
  15. Python基础教程:(小窍门)如何优化Python占用的内存
  16. PHP下SESSION无法跨页传递的解决
  17. [译] TensorFlow 教程 #09 - 视频数据
  18. OpenStack组件——Nova计算资源管理
  19. Java基础----交通工具的继承写法(面向对象的三大特征)
  20. Ubuntu 和NVIDIA显卡的兼容问题解决

热门文章

  1. 今日头条给我发工资744.53元 坚持原创终于有了回报
  2. 什么是GPU,GPU怎么工作的,什么是图形的渲染,渲染怎么完成的。
  3. win7修复计算机无鼠标,win7电脑鼠标不听使唤反应慢如何修复
  4. [解决Chrome禁止发送不安全的内网网络请求](ERR_FAILED)(How to fix Chrome block your insecure private network requests)
  5. 下载firefox国际版
  6. 苏东坡有一句“八风吹不动,独坐紫金台“ 人生智慧
  7. android判断应用是否回到桌面的两种方法
  8. 水果店圈子:水果店开业前需要做的准备,水果店开业当天要注意哪些问题
  9. 分布式、微服务、集群
  10. Java菜鸟学习日记7