【题解】P2678 [NOIP2015 提高组] 跳石头
题目背景
一年一度的“跳石头”比赛又要开始了!
题目描述
这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有 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 提高组] 跳石头相关推荐
- 信息学奥赛一本通 1890:【15NOIP提高组】跳石头 | 洛谷 P2678 [NOIP2015 提高组] 跳石头
[题目链接] ybt 1890:[15NOIP提高组]跳石头 洛谷 P2678 [NOIP2015 提高组] 跳石头 ybt 1247:河中跳房子 OpenJudge NOI 1.11 10:河中跳房 ...
- P2678 [NOIP2015 提高组] 跳石头
P2678 [NOIP2015 提高组] 跳石头 题目背景 一年一度的"跳石头"比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选 ...
- 洛谷P2678 [NOIP2015 提高组] 跳石头
传送门:https://www.luogu.com.cn/problem/P2678 非常同意一个观点:二分答案由二分区间和judge函数构成 二分答案,顾名思义,就是找到答案的范围区间,然后在这个区 ...
- Java解P2678 [NOIP2015 提高组] 跳石头,有图有注释,通俗易懂
01.题目及链接 题目链接:https://www.luogu.com.cn/problem/P2678 02.解题思路 对两个石头之间的最短距离mid进行二分枚举,初始时left=0,right=起 ...
- 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, ...
最新文章
- 图论分析方法gretna_基于磁共振的多模态分析对血管性认知障碍患者脑网络的研究...
- base64是哪个jar包的_如何通过一个类名找到它属于哪个jar包?
- python smtp 群发邮件
- Struts2中使用Session的两种方法
- C++中的RAII机制
- 恢复误删数据(SQL Server 2000)--Log Explorer
- python 中用什么键缩进 —— tab 还是空格?
- Windows API的时间结构体、时间转换及时间获取
- 开发中的坑:MQ 也能做 RPC 调用?
- arm ida 伪代码 安卓 符号表_IDA 制作 sig文件 gdb 导入符号表
- 解决Ubuntu vim 中文乱码
- python数据库实现注册函数_10.注册和登录功能实现(3)—— 注册数据写入数据库...
- python中的作用域_python 模块的作用域
- st算法 求区间最值问题
- Python基础教程:(小窍门)如何优化Python占用的内存
- PHP下SESSION无法跨页传递的解决
- [译] TensorFlow 教程 #09 - 视频数据
- OpenStack组件——Nova计算资源管理
- Java基础----交通工具的继承写法(面向对象的三大特征)
- Ubuntu 和NVIDIA显卡的兼容问题解决
热门文章
- 今日头条给我发工资744.53元 坚持原创终于有了回报
- 什么是GPU,GPU怎么工作的,什么是图形的渲染,渲染怎么完成的。
- win7修复计算机无鼠标,win7电脑鼠标不听使唤反应慢如何修复
- [解决Chrome禁止发送不安全的内网网络请求](ERR_FAILED)(How to fix Chrome block your insecure private network requests)
- 下载firefox国际版
- 苏东坡有一句“八风吹不动,独坐紫金台“ 人生智慧
- android判断应用是否回到桌面的两种方法
- 水果店圈子:水果店开业前需要做的准备,水果店开业当天要注意哪些问题
- 分布式、微服务、集群
- Java菜鸟学习日记7