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

这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有 <span id="MathJax-Span-2" class="mrow"><span id="MathJax-Span-3" class="mi">N<span class="MJX_Assistive_MathML"> 块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。

为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳跃距离尽可能长。由于预算限制,组委会至多从起点和终点之间移走 <span id="MathJax-Span-5" class="mrow"><span id="MathJax-Span-6" class="mi">M<span class="MJX_Assistive_MathML">块岩石(不能移走起点和终点的岩石)。

输入

第一行包含三个整数 <span id="MathJax-Span-8" class="mrow"><span id="MathJax-Span-9" class="mi">L<span id="MathJax-Span-10" class="mo">,<span id="MathJax-Span-11" class="mi">N<span id="MathJax-Span-12" class="mo">,<span id="MathJax-Span-13" class="mi">M,<span class="MJX_Assistive_MathML">分别表示起点到终点的距离,起点和终点之间的岩石数,以及组委会至多移走的岩石数。保证 <span class="MathJax_Preview"><span id="MathJax-Element-4-Frame" class="MathJax"><span id="MathJax-Span-14" class="math"><span id="MathJax-Span-15" class="mrow"><span id="MathJax-Span-16" class="mi">L<span id="MathJax-Span-17" class="mo">≥<span id="MathJax-Span-18" class="mn">1<span class="MJX_Assistive_MathML"> 且 <span class="MathJax_Preview"><span id="MathJax-Element-5-Frame" class="MathJax"><span id="MathJax-Span-19" class="math"><span id="MathJax-Span-20" class="mrow"><span id="MathJax-Span-21" class="mi">N<span id="MathJax-Span-22" class="mo">≥<span id="MathJax-Span-23" class="mi">M<span id="MathJax-Span-24" class="mo">≥<span id="MathJax-Span-25" class="mn">0<span class="MJX_Assistive_MathML">。

接下来 <span id="MathJax-Span-27" class="mrow"><span id="MathJax-Span-28" class="mi">N<span class="MJX_Assistive_MathML">行,每行一个整数,第 <span class="MathJax_Preview"><span id="MathJax-Element-7-Frame" class="MathJax"><span id="MathJax-Span-29" class="math"><span id="MathJax-Span-30" class="mrow"><span id="MathJax-Span-31" class="mi"><span class="MJX_Assistive_MathML">i 行的整数 <span class="MathJax_Preview"><span id="MathJax-Element-8-Frame" class="MathJax"><span id="MathJax-Span-32" class="math"><span id="MathJax-Span-33" class="mrow"><span id="MathJax-Span-34" class="msubsup"><span id="MathJax-Span-35" class="mi">D<span id="MathJax-Span-36" class="mi">i<span id="MathJax-Span-37" class="texatom"><span id="MathJax-Span-38" class="mrow"><span id="MathJax-Span-39" class="mo">(<span id="MathJax-Span-40" class="mn">0<span id="MathJax-Span-41" class="mo"><<span id="MathJax-Span-42" class="msubsup"><span id="MathJax-Span-43" class="mi">D<span id="MathJax-Span-44" class="mi">i<span id="MathJax-Span-45" class="mo"><<span id="MathJax-Span-46" class="mi">L<span id="MathJax-Span-47" class="texatom"><span id="MathJax-Span-48" class="mrow"><span id="MathJax-Span-49" class="mo">)<span class="MJX_Assistive_MathML">, 表示第 <span class="MathJax_Preview"><span id="MathJax-Element-9-Frame" class="MathJax"><span id="MathJax-Span-50" class="math"><span id="MathJax-Span-51" class="mrow"><span id="MathJax-Span-52" class="mi"><span class="MJX_Assistive_MathML">i 块岩石与起点的距离。这些岩石按与起点距离从小到大的顺序给出,且不会有两个岩石出现在同一个位置。

输出
输出只包含一个整数,即最短跳跃距离的最大值。
样例输入
25 5 2
2
11
14
17
21

复制

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

测试点编号 <span id="MathJax-Span-72" class="mrow"><span id="MathJax-Span-73" class="mi">n<span id="MathJax-Span-74" class="mo">,<span id="MathJax-Span-75" class="mi">m<span class="MJX_Assistive_MathML">的规模 <span id="MathJax-Span-77" class="mrow"><span id="MathJax-Span-78" class="mi">L<span class="MJX_Assistive_MathML">的规模
1 <span id="MathJax-Span-80" class="mrow"><span id="MathJax-Span-81" class="mi">n<span id="MathJax-Span-82" class="mo">,<span id="MathJax-Span-83" class="mi">m<span id="MathJax-Span-84" class="mo">≤<span id="MathJax-Span-85" class="mn">10<span class="MJX_Assistive_MathML"><br /> <span id="MathJax-Span-87" class="mrow"><span id="MathJax-Span-88" class="mi">L<span id="MathJax-Span-89" class="mo">≤<span id="MathJax-Span-90" class="msubsup"><span id="MathJax-Span-91" class="mn">10<span id="MathJax-Span-92" class="mn">9
2
3 <span id="MathJax-Span-94" class="mrow"><span id="MathJax-Span-95" class="mi">n<span id="MathJax-Span-96" class="mo">,<span id="MathJax-Span-97" class="mi">m<span id="MathJax-Span-98" class="mo">≤<span id="MathJax-Span-99" class="mn">100<span class="MJX_Assistive_MathML"><br />
4
5
6 <span id="MathJax-Span-101" class="mrow"><span id="MathJax-Span-102" class="mi">n<span id="MathJax-Span-103" class="mo">,<span id="MathJax-Span-104" class="mi">m<span id="MathJax-Span-105" class="mo">≤<span id="MathJax-Span-106" class="mn">50000<span class="MJX_Assistive_MathML"><br />
7
8
9
10
 
 



采用二分的策略
查找符合移走石头数的最小最小跳跃距离
#include<bits/stdc++.h>

using namespace std;

int ste[70000],L,N,M,lt,rt,mid,Ans;

int STS(int x)//
{
int cot=0,lst=0;
for(int i=1;i<=N;++i)
{
if(ste[i]-lst<x)
{
cot++;//如果两石头之间的距离小于x删掉lst这块石头
}
else
{
lst=ste[i];//如果大于x更新lst
}
}
if(cot>M)
{
return 0;
}
return 1;
} int main()
{
cin>>L>>N>>M;
for(int i=1;i<=N;++i)
{
cin>>ste[i];
}
ste[++N]=L; lt=0;
rt=L;
while(lt<=rt)
{
mid=(lt+rt)>>1; if(STS(mid))//二分答案
{
Ans=mid;
lt=mid+1;
}
else
{
rt=mid-1;
}
} cout<<Ans;
return 0;
}
 
 
 

[2015年NOIP提高组] 跳石头的更多相关文章

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

    题目链接 https://www.luogu.org/problemnew/show/P2678 题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布 ...

  2. NOIP2015提高组 跳石头 ACM-ICPC2017香港 E(选择/移除+二分答案)

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

  3. [NOIp2015提高组]跳石头

    OJ题号:洛谷2678 思路:贪心+二分. 从前往后扫,一旦这个石头到上一个选的石头的距离小于二分的值就把这块石头移走. #include<cstdio> #include<queu ...

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

    #include<bits/stdc++.h> using namespace std; int l,n,m,a[100010];//与起点的距离 bool check(int d) { ...

  5. NOIP提高组初赛难题总结

    NOIP提高组初赛难题总结 注:笔者开始写本文章时noip初赛新题型还未公布,故会含有一些比较老的内容,敬请谅解. 约定: 若无特殊说明,本文中未知数均为整数 [表达式] 表示:在表达式成立时它的值为 ...

  6. NOIP提高组2004 合并果子题解

    NOIP提高组2004 合并果子题解 描述:在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每一次合并,多多可以把两堆果子合并到一起,消 ...

  7. 计蒜客 NOIP 提高组模拟竞赛第一试 补记

    计蒜客 NOIP 提高组模拟竞赛第一试 补记 A. 广场车神 题目大意: 一个\(n\times m(n,m\le2000)\)的网格,初始时位于左下角的\((1,1)\)处,终点在右上角的\((n, ...

  8. 1043 方格取数 2000 noip 提高组

    1043 方格取数  2000 noip 提高组 题目描述 Description 设有N*N的方格图(N<=10,我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0.如下图所示(见样 ...

  9. [NOIP提高组2018]货币系统

    [TOC] 题目名称:货币系统 来源:2018年NOIP提高组 链接 博客链接 CSDN 洛谷博客 洛谷题解 题目链接 LibreOJ(2951) 洛谷(P5020) 大视野在线评测(1425) 题目 ...

  10. 津津的储蓄计划 NOIp提高组2004

    这个题目当年困扰了我许久,现在来反思一下 本文为博客园ShyButHandsome的原创作品,转载请注明出处 右边有目录,方便快速浏览 题目描述 津津的零花钱一直都是自己管理.每个月的月初妈妈给津津\ ...

随机推荐

  1. 【Django drf】视图层大总结 ViewSetMixin源码分析 路由系统 action装饰器

    目录 九个视图子类 视图集 继承ModelViewSet类写五个接口 继承 ReadOnlyModelView编写2个只读接口 ViewSetMixin源码分析 查找as_view方法 setattr ...

  2. sun.security.validator.ValidatorException: PKIXpath building failed: sun.security.provider,javax.net.ssT.SSLHandshakeExceptions.certpath.SunCertPathBuilderException

    报错信息: sun.security.validator.ValidatorException: PKIXpath building failed: sun.security.provider,jav ...

  3. bash原样输出字符串中的换行

    ➜ code $ cat test.sh #!/bin/bash nr="`cat -`"\" echo "$nr" echo $nr echo &q ...

  4. 从 Newtonsoft.Json 迁移到 System.Text.Json

    一.写在前面 System.Text.Json 是 .NET Core 3 及以上版本内置的 Json 序列化组件,刚推出的时候经常看到踩各种坑的吐槽,现在经过几个版本的迭代优化,提升了易用性,修复了 ...

  5. Spring Cloud Openfeign Get请求发生405错误

    kust-retrieve服务 @Resource private AuthFeignService authFeignService; @ApiOperation("获取用户信息" ...

  6. JZOJ 3448.公路维护

    \(\text{Problem}\) 1.询问区间最小值是否大于 \(0\) 2.区间加(可正可负) 3.区间取 \(\max\) 如果某个数经过操作后小于等于 \(0\),以后的操作就不会再影响这个 ...

  7. 常见数据库mysql、oracle和DB2中is null 和 =null 的区别

    问题背景:前段时间我在测试过程中上传一个文件,文件内容要求判断为空,结果出现了报错,跟踪原因发现是开发误将oracle中对null的判断方式写成了=null,下面梳理一下不同数据库对该问题的处理方法: ...

  8. Linux操作命令(四) 1.which命令 2.whereis命令 3.locate命令

    1.which命令 which 命令的作用是,在 PATH 变量指定的路径中搜索可执行文件的所在位置.它一般用来确认系统中是否安装了指定的软件 确认是否安装了 gcc:which gcc 查看 cd ...

  9. I2C接口

    I2C是一种多向控制总线,它是由PHILIPS公司在二十世纪八十年代初设计出来的,利用该总线可实现多主机系统所需的裁决和高低速设备同步等功能,是一种高性能的串行总线.I2C总线只用两根双向传输线就可以 ...

  10. 修改文件名或文件内容编码-convmv

    问题的出现 开发小伙伴把之前运行在windows server上的项目迁移到ubuntu上之后出现了中文乱码的问题,分析其原因是代码中创建文件未指定编码,所以就自动匹配了操作系统的编码,也就是从GBK ...