luogu P2678 跳石头 二分answer
P2678 跳石头
题目背景
一年一度的“跳石头”比赛又要开始了!
题目描述
这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有 N 块岩石(不含起点和终 点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达 终点。
为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳 跃距离尽可能长。由于预算限制,组委会至多从起点和终点之间移走 M 块岩石(不能 移走起点和终点的岩石)。
输入输出格式
输入格式:
输入文件名为 stone.in。
输入文件第一行包含三个整数 L,N,M,分别表示起点到终点的距离,起点和终 点之间的岩石数,以及组委会至多移走的岩石数。
接下来 N 行,每行一个整数,第 i 行的整数 Di(0 < Di < L)表示第 i 块岩石与 起点的距离。这些岩石按与起点距离从小到大的顺序给出,且不会有两个岩石出现在同 一个位置。
输出格式:
输出文件名为 stone.out。 输出文件只包含一个整数,即最短跳跃距离的最大值。
输入输出样例
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。
二分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相关推荐
- 洛谷——P2678 跳石头
https://www.luogu.org/problem/show?pid=2678#sub 题目背景 一年一度的"跳石头"比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道 ...
- 2015 提高组 跳石头--二分答案
题目背景 一年一度的"跳石头"比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间 ...
- 二分答案——跳石头(洛谷 P2678)
题目选自洛谷P2678 这道题题目并不复杂,思考一下也能知道用二分的方法来做. 难点在于如何判断是否满足条件,以及二分的边界问题. 下面给出详细解题思路: //tot表示需要搬走的石块数量,i表示找的 ...
- P2678 [NOIP2015 提高组] 跳石头
P2678 [NOIP2015 提高组] 跳石头 题目背景 一年一度的"跳石头"比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选 ...
- 信息学奥赛一本通 1890:【15NOIP提高组】跳石头 | 洛谷 P2678 [NOIP2015 提高组] 跳石头
[题目链接] ybt 1890:[15NOIP提高组]跳石头 洛谷 P2678 [NOIP2015 提高组] 跳石头 ybt 1247:河中跳房子 OpenJudge NOI 1.11 10:河中跳房 ...
- c++二分答案 之 跳石头
题目: 题目描述 Description 一年一度的"跳石头"比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和 ...
- NOIP2015跳石头【二分答案(最小值最大化) | 贪心】
519. 跳石头 - AcWing题库 组委会已经选择好了两块岩石作为比赛起点 0 和终点 L . 在起点和终点之间,有 NN 块岩石(不含起点和终点的岩石). 在比赛过程中,选手们将从起点出发,每一 ...
- 【题解】P2678 [NOIP2015 提高组] 跳石头
题目背景 一年一度的"跳石头"比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间 ...
- 跳石头 NOIP2015 提高组 Day2 T1
codevs 4768 跳石头 题目描述 Description 一年一度的"跳石头"比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好 ...
- [NOIP2015]跳石头
题目: [NOIP2015]跳石头 ,哈哈,我们今天来看一道二分答案的题嘛,这是选自NOIP上的一道题,好了,我们一起来看看题意吧: 题目描述是复制的,可能有部分显示不对,我就把题目链接放下面! 题目 ...
最新文章
- 腾讯发布95页重磅报告:全面预测中国互联网未来5年趋势
- wireshark tcp data中文_TCP的可靠传输
- SciTE for Ruby的配置
- 在linux中加用户,Ubuntu使用教程——在Ubuntu中添加用户
- Java中的锁原理、锁优化、CAS、AQS详解!
- LeetCode_104.二叉树的最大深度
- zabbix自定义监控
- JEECG社区招募新人啦
- PHP如何判断一个数组是一维数组或者是二维数组?用什么函数?
- AcWing进阶算法课Level-4 第六章 搜索 (模拟退火,爬山)
- 【每日算法Day 103】老题新做,几乎不会有人想到的解法,它来了
- JAVA----简单的自旋锁
- 【YY手机】用AVR单片机制作手机系列教程-基础篇
- 红外传感器型号和参数_各类红外传感器比较
- 目标识别—SSD网络详解
- java pojo属性,java中的POJO类属性建议使用包装数据类型
- python语言程序设计基础笔记(三)计算机思维
- 【python练习】摘苹果题
- linux 卸载oracle库,Linux下完美卸载 Oracle
- 弹性容器中 子元素的flex属性介绍
热门文章
- MCU——简易单片机按键驱动程序分析
- PAT (Basic Level) Practice1023 组个最小数
- Hive练习求给出2017年1月的新客数
- redis数据类型之List入门练习
- 135.001 智能合约设计-——单员工薪酬系统
- DockOne微信分享(一一零):Docker在沪江落地的实践
- 美媒:中国可能引领“物联网”的进步
- CentOS 6.5 安装 java 环境
- 导出excel、word、csv文件方法汇总
- 深入了解Java ClassLoader、Bytecode 、ASM、cglib (I)