Luogu P2678 跳石头
题目链接:Click here
Solution:
最小值最大,显然二分,二分出mid后贪心去除石头,判断m次内是否可行即可
Code:
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+11;
int n,m,k,a[N],b[N];
int check(int mid){
int tim=m;b[n+1]=k-a[n];
for(int i=1;i<=n;i++) b[i]=a[i]-a[i-1];
for(int i=1;i<=n+1;i++){
if(b[i]>=mid) continue;
if(!tim) return 0;--tim;
b[i+1]+=b[i],b[i]=b[i-1];
}return 1;
}
int read(){
int x=0,f=1;char ch=getchar();
while(!isdigit(ch)){if(ch=='-')f=-f;ch=getchar();}
while(isdigit(ch)){x=x*10+ch-48;ch=getchar();}
return x*f;
}
signed main(){
k=read(),n=read(),m=read();
for(int i=1;i<=n;i++)
a[i]=read(),b[i]=a[i]-a[i-1];
b[n+1]=k-a[n];
int l=1,r=k,re=-1;
while(l<=r){
int mid=l+r>>1;
if(check(mid)) re=mid,l=mid+1;
else r=mid-1;
}printf("%lld\n",re);
return 0;
}
Luogu P2678 跳石头的更多相关文章
- Luogu P2678 跳石头(二分)
P2678 跳石头 题意 题目背景 一年一度的"跳石头"比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起 ...
- 解题报告:luogu P2678 跳石头
题目链接:P2678 跳石头 很简单的二分查找,可悲的是我并不会. 不过题解贴心的写得很清楚(学会了套路) 二分一次判断一次,复杂度是\(O(nlogl)\),可以通过此题. \(Code:\) #i ...
- 洛谷 P2678 跳石头
题目背景 一年一度的"跳石头"比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间 ...
- [NOIP2015提高&洛谷P2678]跳石头 题解(二分答案)
[NOIP2015提高&洛谷P2678]跳石头 Description 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之 ...
- P2678 跳石头(二分答案)
P2678 跳石头 题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间 ...
- 洛谷——P2678 跳石头
https://www.luogu.org/problem/show?pid=2678#sub 题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着 ...
- [NOIP2015] 提高组 洛谷P2678 跳石头
题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间,有 N 块岩石(不 ...
- P2678 跳石头---(二分答案)
题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间,有 NNN 块岩石 ...
- P2678 跳石头题解
#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #i ...
随机推荐
- JavaScript Array Reduce用于数组求和
需求一 假设有一个数组,需要对其中的元素进行求和. const numbers = [1, -1, 2, 3]; 传统写法,使用for循环求和 const numbers = [1, -1, 2, 3 ...
- C语言作业09
问题 答案 这个作业属于那个课程 C语言程序设计 这个作业要求在哪里 https://i.cnblogs.com/EditPosts.aspx?opt=1 我在这个课程的目标是 在学好C语言编程的基础 ...
- 初步学习jquery学习笔记(六)
jquery学习笔记六 AJAX 简介 AJAX 是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新. load() 方法 load() 方法从服务器加载数据,并把返回的数据 ...
- 使用 tablib 来自动化管理测试用例,其他的工具都不用学了
你在学习 python 自动化测试吗?听过 requests 库吗?tablib 是 requests 库作者常年维护的一个可以操作 Excel 等多种文件格式,将他们变成一种通用数据集的第三方库. ...
- 3D max导出的设置选项
一3D max导出的设置选项
- vue2-brace-editor代码编辑器添加自定义代码提示(修改源码)
下载vue2-brace-editor源代码,先执行npm install安装项目依赖 在ace.component.vue组件的methods添加setCustomPrompts方法 修改完源码后, ...
- Linux安装FastDFS~Nginx~
确保Linux联网,我这里使用的是CentOS7操作,联网教程 https://www.cnblogs.com/taopanfeng/p/10978752.html 先把指定的四个文件放入指定目录 安 ...
- centos7进入单用户模式修改root密码
1.开机 按“e”,然后输入init=/bin/sh 2.根据提示按ctrl+x 得如下图: 3.输入mount -o remount,rw / 输入passwd设置新密码.如下图: 4.输 ...
- AIX 逻辑卷简介
1.基本概念 LVM的组成:物理卷PV.卷组VG.逻辑卷LV.物理分区PP.逻辑分区LP.文件系统等 物理卷:物理卷表示AIX可以识别的物理磁盘(hdisk*),一个物理卷指一块硬盘.可以是内部的 ...
- IO模型对比:同步、异步、阻塞、非阻塞
最近工作接触到了网络服务同步和异步,所以学习了下<UNIX网络编程>,在此作下总结. 一.I/O模型 输入/输出(I/O)是在主存和外部设备(如磁盘驱动器.终端和网络)之间拷贝数据的过程. ...