题目链接:Click here

Solution:

最小值最大,显然二分,二分出mid后贪心去除石头,判断m次内是否可行即可

Code:

  1. #include<bits/stdc++.h>
  2. #define int long long
  3. using namespace std;
  4. const int N=1e5+11;
  5. int n,m,k,a[N],b[N];
  6. int check(int mid){
  7. int tim=m;b[n+1]=k-a[n];
  8. for(int i=1;i<=n;i++) b[i]=a[i]-a[i-1];
  9. for(int i=1;i<=n+1;i++){
  10. if(b[i]>=mid) continue;
  11. if(!tim) return 0;--tim;
  12. b[i+1]+=b[i],b[i]=b[i-1];
  13. }return 1;
  14. }
  15. int read(){
  16. int x=0,f=1;char ch=getchar();
  17. while(!isdigit(ch)){if(ch=='-')f=-f;ch=getchar();}
  18. while(isdigit(ch)){x=x*10+ch-48;ch=getchar();}
  19. return x*f;
  20. }
  21. signed main(){
  22. k=read(),n=read(),m=read();
  23. for(int i=1;i<=n;i++)
  24. a[i]=read(),b[i]=a[i]-a[i-1];
  25. b[n+1]=k-a[n];
  26. int l=1,r=k,re=-1;
  27. while(l<=r){
  28. int mid=l+r>>1;
  29. if(check(mid)) re=mid,l=mid+1;
  30. else r=mid-1;
  31. }printf("%lld\n",re);
  32. return 0;
  33. }

Luogu P2678 跳石头的更多相关文章

  1. Luogu P2678 跳石头(二分)

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

  2. 解题报告:luogu P2678 跳石头

    题目链接:P2678 跳石头 很简单的二分查找,可悲的是我并不会. 不过题解贴心的写得很清楚(学会了套路) 二分一次判断一次,复杂度是\(O(nlogl)\),可以通过此题. \(Code:\) #i ...

  3. 洛谷 P2678 跳石头

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

  4. [NOIP2015提高&洛谷P2678]跳石头 题解(二分答案)

    [NOIP2015提高&洛谷P2678]跳石头 Description 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之 ...

  5. P2678 跳石头(二分答案)

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

  6. 洛谷——P2678 跳石头

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

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

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

  8. P2678 跳石头---(二分答案)

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

  9. P2678 跳石头题解

    #include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #i ...

随机推荐

  1. java script 的注释与分号

    // 单行注释 /**/多行注释 在js 中 变量.函数和操作符都是区分大小写的 什么是标识符 变量.函数.属性的名字.或者函数的参数. 变量的命名规范:不能以数字开头. 变量声明: var  nam ...

  2. python 并发编程 基于gevent模块 协程池 实现并发的套接字通信

    基于协程池 实现并发的套接字通信 客户端: from socket import * client = socket(AF_INET, SOCK_STREAM) client.connect(('12 ...

  3. python 并发编程 IO模型介绍

    gevent 底层是怎么实现? io模型4个重要概念: 两类 一类:同步.异步 提交任务的方式 同步: 提交完任务后,在原地等待结果,拿到结果后,才执行下一行代码 #所谓同步,就是在发出一个功能调用时 ...

  4. Linux系统搭建并管理Git服务器

    搭建Git服务器 GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓 ...

  5. Python常用方法库备忘(一)_当前路径下文件夹和文件

    #!/usr/bin/env python # -*- coding:utf-8 -*- # --------------*-------------- # @Author : AilF # @Tim ...

  6. Spring(二)--Spring入门案例

    Spring入门案例 1.需要的实体类 2.需要的接口和实现类 3.需要的service和实现类 /** * service层的作用 * 在不改变dao层代码的前提下,增加业务逻辑操作 */ publ ...

  7. P1142轰炸

    这是uva上的一道模拟题. 首先给出n(n<=700)个点的坐标(坐标在1*10^9)之内,询问走直线可以经过的点数.一开始我想到了一个类似于桶排序的方法来存坐标,但是要注意数组大小啊!第二次想 ...

  8. zookeeper 选举leader详解

    一.前言 前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举. 二.Leader选举 2.1 Leader选举概 ...

  9. 关于encodeURI() 踩的坑

    情景: 列表页跳转详情页,需要把列表页的数据带到详情页直接展示,思路是在路径后面加?传参,然后再在详情页获取url的参数. 为了以防中文乱码什么的所以先试用encodeURI转码再decodeURI解 ...

  10. [.net core]9.中间件的具体实现

    查看Startup.cs的configure方法 public void Configure(IApplicationBuilder app, IHostingEnvironment env) { i ...