描述

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

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

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

输入

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

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

输出

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

输入样例 1

25 5 2
2
11
14
17
21

输出样例 1

4

提示

输入输出样例 1 说明:将与起点距离为 22和 1414 的两个岩石移走后,最短的跳跃距离为 44(从与起点距离 1717 的岩 石跳到距离 2121 的岩石,或者从距离 2121 的岩石跳到终点)。

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

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

对于 100\%100%的数据:

0 ≤ M ≤ N ≤ 50,000,1 ≤ L ≤ 1,000,000,0000≤M≤N≤50,000,1≤L≤1,000,000,000。

代码如下:

#include<bits/stdc++.h>
using namespace std;
int n,m,a[10000004]; 
int main()
{
    int r,o,l=0;
    cin>>o>>n>>m;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }

a[n+1]=o;
    r=o+1;
    int mid,e,sum;
    while(r-l>1)
    {
        mid=(r+l)/2;
        e=0;
        sum=0;
        for(int i=1;i<=n+1;i++)
        {
            if(a[i]-e>=mid)
            {
                e=a[i];
            }
            else
            {
                sum++;
            }
        }
        if(sum>m)
        {
            r=mid;
        }
        else l=mid;
    }
    cout<<l;
    return 0;
}

此题运用了简单的二分思想,我一个小鞋生觉得不算很难

NOIP201508跳石头相关推荐

  1. 跳石头 NOIP2015 提高组 Day2 T1

    codevs 4768 跳石头 题目描述 Description 一年一度的"跳石头"比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好 ...

  2. 洛谷——P2678 跳石头

    https://www.luogu.org/problem/show?pid=2678#sub 题目背景 一年一度的"跳石头"比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道 ...

  3. 2015 提高组 跳石头--二分答案

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

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

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

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

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

  6. 二分答案——跳石头(洛谷 P2678)

    题目选自洛谷P2678 这道题题目并不复杂,思考一下也能知道用二分的方法来做. 难点在于如何判断是否满足条件,以及二分的边界问题. 下面给出详细解题思路: //tot表示需要搬走的石块数量,i表示找的 ...

  7. c++二分答案 之 跳石头

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

  8. NOIP2015跳石头【二分答案(最小值最大化) | 贪心】

    519. 跳石头 - AcWing题库 组委会已经选择好了两块岩石作为比赛起点 0 和终点 L . 在起点和终点之间,有 NN 块岩石(不含起点和终点的岩石). 在比赛过程中,选手们将从起点出发,每一 ...

  9. 【题解】P2678 [NOIP2015 提高组] 跳石头

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

  10. [NOIP2015]跳石头

    题目: [NOIP2015]跳石头 ,哈哈,我们今天来看一道二分答案的题嘛,这是选自NOIP上的一道题,好了,我们一起来看看题意吧: 题目描述是复制的,可能有部分显示不对,我就把题目链接放下面! 题目 ...

最新文章

  1. Mysql 索引优化分析_如何优化MySQL的性能?从索引方面优化案例分析
  2. 深度学习性能提升的诀窍
  3. Python 获取项目根路径
  4. UA MATH566 统计理论 QE练习 位置变换后的指数分布
  5. ESFramewor使用技巧(2)-- 在插件中使用NHibernate
  6. Vue中使用LayUI没有效果
  7. c语言see函数,vprintf() - C语言库函数
  8. Nodejs开发框架Express3.0开发手记–从零开始
  9. Maven 仓库优先级
  10. 作为ACMer,在我最懈怠的时候让我看到了这段话
  11. SQL Serever学习14——存储过程和触发器
  12. word2007导出pdf带书签
  13. vbs教程《日期时间》
  14. STM32实战总结:HAL之数码管
  15. linux系统能看抖音吗,在Linux系统下用XDroid来安装和运行抖音Android APP应用
  16. java 导出多个excel_Java导出Excel压缩包
  17. Automatic Detection of Welding Defects Using Faster R-CNN
  18. 看看!挺动人的故事!!!
  19. 《计算机视觉黑魔法16个实战项目》之扫描全能王
  20. 仿elem页面学习之表单提交的动作

热门文章

  1. R语言-gsub替换字符工具
  2. Java 服务器版超市管理系统,基于JAVA的超市进销存管理系统.doc
  3. flutter 必须掌握的CustomScrollView及Sliver类型控件的几种使用
  4. python sin_Python数字sin()方法
  5. CF1267G Game Relics(期望、背包)
  6. java公路赛_为什么Java公路车总被黑?
  7. C++:实现量化exchangerate汇率测试实例
  8. php根据键值排序,数组根据某个键值排序
  9. 信道与信道容量(一)
  10. 你不得不知的网络编程三剑客