传送门.

解析

只需二分枚举空旷指数即可
对于单次判断的check函数,可以相当于n个路标把路面分成n+1个间隔,而对于每个间隔[l,r]和空旷指数x(边界已有路标),所需路标应为:

(r-l-1)/x

(比如[2,5],x=3,显然不用,所以需减1)
这样每段复杂度为O(1)
check复杂度则为O(N)
可以得到解决

update on 2022.3.17

感谢 @沉迷小说 提出的关于二分上界的问题,只需要赋值为 lll 即可,已经修正

代码

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<iostream>
#include<string>
#include<queue>
#include<vector>
using namespace std;
const int M=1e9;
int l,n,k;
int a[100500]={ },d[100500];
bool check(int x){int num=0;for(int i=1;i<=n+1;i++){num+=(d[i]-1)/x;}return num<=k;
}
int main(){scanf("%d%d%d",&l,&n,&k);a[0]=1;for(int i=1;i<=n;i++){scanf("%d",&a[i]);d[i]=a[i]-a[i-1];//记录每段间隔长度}d[n+1]=l-a[n];int st=0,ed=l;while(st<ed){int mid=(st+ed) >> 1;if(check(mid)) ed=mid;else st=mid+1;}printf("%d",st);return 0;
}

AC快乐!!!

二分:路标设置(洛谷)相关推荐

  1. 二分答案——路标设置(洛谷 P3853)

    题目选自洛谷P3853 这题不算很难,类似于跳石子,典型的二分答案: 先简单说一下思路: 我们把公路上相邻路标的最大距离定义为该公路的"空旷指数" 求增设路标后能达到的最小&quo ...

  2. 二分答案——木材加工(洛谷 P2440)

    题目选自洛谷P2440 读完题目后应该有个大致思路,看得出来是二分查找的题. 首先我们输入 n 和 k 并且运用二分找到合适的尺寸,而l 必须要足够小,r 必须要足够的大.题中写道数组中的数最大不会超 ...

  3. 二叉树——医院设置(洛谷 P1364)

    题目选自洛谷P1364 从指定结点开始,使用DFS,对于某个结点来说,搜索的深度就是源点到这个结点的距离,单点贡献(该点所有居民到医院的距离之和)就是源点到这个结点的距离乘上该点的居民数量:然后加上自 ...

  4. [二分][前缀和]洛谷 P1083 借教室

    题意: 有n天,m个请求.n天内每天的可用教室为a_ia​i​​个,m个请求是从l到r天租借t个教室. 如果某一天的教室分配无法满足,则输出当前的订单号. 思考: 一开始根本没想到这个东西怎么二分.. ...

  5. 洛谷P3853 [TJOI2007]路标设置

    P3853 [TJOI2007]路标设置 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 这道题与 洛谷P2678 [NOIP2015 提高组] 跳石头 和 洛谷P1182 数列分段 ...

  6. 洛谷 P3853 [TJOI2007]路标设置

    路标设置 二分枚举"空旷指数", 做法与跳石头类似. #include <iostream> #include <cstdio> #include < ...

  7. 洛谷 P3858 路标设置

    P3858 路标设置 题目网址:https://www.luogu.com.cn/problem/P3853 题目描述: 我们把公路上相邻路标的最大距离定义为该公路的"空旷指数". ...

  8. 二分答案——yyy2015c01 的 U 盘(洛谷 P2370)

    题目选自洛谷P2370 两种解法,01背包+排序,或是直接二分即可 写了二分最后只有40的分...刚好过了给的四个样例 哭辽~想了半天不知道哪里错了 题目背景 在 2020 年的某一天,我们的 yyy ...

  9. 二分答案——砍树(洛谷 P1873)

    题目选自洛谷P1873 分析:如果句子非常低,可以收集到的木材会更多,以至于超过需要的数量.随着砍树高度逐渐增大,获得的木材会逐渐减少.砍树高度增加到一定程度时,收集到的木材就会开始不够用.因此需要找 ...

  10. 洛谷 P2440 木材加工(二分,含边界处理的笔记)

     题目链接: 木材加工 - 洛谷https://www.luogu.com.cn/problem/P2440 非常简单的题目,用left和right控制二分边界,ans一开始是0,每次check到符合 ...

最新文章

  1. PHP开发错误锦集(持续更新)
  2. Python进阶1——一摞纸牌
  3. 结构化查询语言(Structured Query Language)
  4. 中间件是什么?在.NET Core中的工作原理又是怎样的呢?
  5. Ixia推出首款太比特级网络安全测试平台
  6. 像postman上传文件_90%的测试工程师是这样使用Postman做接口测试的……
  7. 浅说深度学习(4):增强学习
  8. 再探正则表达式c++-html中搜索url
  9. 如何判断两物体加速度相等_力学实验2:探究加速度和力的关系
  10. Vue2系列教程——vue-pdf插件
  11. 蓝牙BLE芯片PHY6222之SPI驱动ST7789
  12. 游戏测试一工作原理及测试流程
  13. 【C语言】abs()用法及其他绝对值函数
  14. 挂载移动硬盘到ubuntu server
  15. 【C语言】判断数字是否为素数或合数
  16. Java并发教程(Oracle官方资料) 分享
  17. 关于JS如何实现图片闪烁
  18. APP的三种类型以及区分方法
  19. 考生都难哭了,用 Python 分析了一下,这里才是高考地狱级难度
  20. 思科全球副总裁、大中华区首席技术官曹图强:网络安全不是奢侈品,而是必需品...

热门文章

  1. 对5种主流编程语言的吐槽
  2. 2014全国计算机二级ms office,2014计算机二级MS Office真题及答案
  3. linux运维趋势 37期刊为啥没有,linux运维常见问题
  4. 评价的等级优良差_满意程度等级划分
  5. mybatis collection标签_一对多的关系,在MyBatis中如何映射?
  6. java 数组 树_java使用顺序数组实现二叉树
  7. 7-7 硬币找钱问题 (10 分)(思路+详解+double类型数据的处理)Come baby!!!!!!!!!!!!!!!!!!!!
  8. 7-20 表达式转换 (25 分)(代码详解+题目分析)
  9. 计算机系统结构答案汤志忠,计算机系统结构(第2版)郑伟明汤志忠课后习题答案以及例题收录.doc...
  10. [C++11]基于范围的for循环