P2678 跳石头

题目背景

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

题目描述

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

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

输入输出格式

输入格式:

输入文件名为 stone.in。

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

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

输出格式:

输出文件名为 stone.out。 输出文件只包含一个整数,即最短跳跃距离的最大值。

输入输出样例

输入样例#1:

25 5 2
2
11
14
17
21

输出样例#1:

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。

二分answer:

#include<bits/stdc++.h>
using namespace std;
int l,ans,m,n,len[50010];
int last,ansi;
bool check(int dis,int m)
{ans=0;last=0;for(int i=1;i<=n;i++){if(len[i]-last<dis) {ans++; } else last=len[i];}if(ans>m) return false;else return true;
}
int bin_search(int l,int r)
{while(l<=r){int dis=(l+r)/2;//二分出的mid if(check(dis,m)==true) {ansi=dis;l=dis+1;}else r=dis-1;}return ansi;
}
int main()
{cin>>l>>n>>m;for(int i=1;i<=n;i++)cin>>len[i];if(m==0) {cout<<l;return 0;}cout<<bin_search(0,l);//直接按数据最大值搜的,写成bin_search(0,l) 就够了。 return 0;
}

转载于:https://www.cnblogs.com/lyqlyq/p/7103317.html

luogu P2678 跳石头 二分answer相关推荐

  1. 洛谷——P2678 跳石头

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. 跳石头 NOIP2015 提高组 Day2 T1

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

  10. [NOIP2015]跳石头

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

最新文章

  1. 腾讯发布95页重磅报告:全面预测中国互联网未来5年趋势
  2. wireshark tcp data中文_TCP的可靠传输
  3. SciTE for Ruby的配置
  4. 在linux中加用户,Ubuntu使用教程——在Ubuntu中添加用户
  5. Java中的锁原理、锁优化、CAS、AQS详解!
  6. LeetCode_104.二叉树的最大深度
  7. zabbix自定义监控
  8. JEECG社区招募新人啦
  9. PHP如何判断一个数组是一维数组或者是二维数组?用什么函数?
  10. AcWing进阶算法课Level-4 第六章 搜索 (模拟退火,爬山)
  11. 【每日算法Day 103】老题新做,几乎不会有人想到的解法,它来了
  12. JAVA----简单的自旋锁
  13. 【YY手机】用AVR单片机制作手机系列教程-基础篇
  14. 红外传感器型号和参数_各类红外传感器比较
  15. 目标识别—SSD网络详解
  16. java pojo属性,java中的POJO类属性建议使用包装数据类型
  17. python语言程序设计基础笔记(三)计算机思维
  18. 【python练习】摘苹果题
  19. linux 卸载oracle库,Linux下完美卸载 Oracle
  20. 弹性容器中 子元素的flex属性介绍

热门文章

  1. MCU——简易单片机按键驱动程序分析
  2. PAT (Basic Level) Practice1023 组个最小数
  3. Hive练习求给出2017年1月的新客数
  4. redis数据类型之List入门练习
  5. 135.001 智能合约设计-——单员工薪酬系统
  6. DockOne微信分享(一一零):Docker在沪江落地的实践
  7. 美媒:中国可能引领“物联网”的进步
  8. CentOS 6.5 安装 java 环境
  9. 导出excel、word、csv文件方法汇总
  10. 深入了解Java ClassLoader、Bytecode 、ASM、cglib (I)