二分:路标设置(洛谷)
传送门.
解析
只需二分枚举空旷指数即可
对于单次判断的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快乐!!!
二分:路标设置(洛谷)相关推荐
- 二分答案——路标设置(洛谷 P3853)
题目选自洛谷P3853 这题不算很难,类似于跳石子,典型的二分答案: 先简单说一下思路: 我们把公路上相邻路标的最大距离定义为该公路的"空旷指数" 求增设路标后能达到的最小&quo ...
- 二分答案——木材加工(洛谷 P2440)
题目选自洛谷P2440 读完题目后应该有个大致思路,看得出来是二分查找的题. 首先我们输入 n 和 k 并且运用二分找到合适的尺寸,而l 必须要足够小,r 必须要足够的大.题中写道数组中的数最大不会超 ...
- 二叉树——医院设置(洛谷 P1364)
题目选自洛谷P1364 从指定结点开始,使用DFS,对于某个结点来说,搜索的深度就是源点到这个结点的距离,单点贡献(该点所有居民到医院的距离之和)就是源点到这个结点的距离乘上该点的居民数量:然后加上自 ...
- [二分][前缀和]洛谷 P1083 借教室
题意: 有n天,m个请求.n天内每天的可用教室为a_iai个,m个请求是从l到r天租借t个教室. 如果某一天的教室分配无法满足,则输出当前的订单号. 思考: 一开始根本没想到这个东西怎么二分.. ...
- 洛谷P3853 [TJOI2007]路标设置
P3853 [TJOI2007]路标设置 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 这道题与 洛谷P2678 [NOIP2015 提高组] 跳石头 和 洛谷P1182 数列分段 ...
- 洛谷 P3853 [TJOI2007]路标设置
路标设置 二分枚举"空旷指数", 做法与跳石头类似. #include <iostream> #include <cstdio> #include < ...
- 洛谷 P3858 路标设置
P3858 路标设置 题目网址:https://www.luogu.com.cn/problem/P3853 题目描述: 我们把公路上相邻路标的最大距离定义为该公路的"空旷指数". ...
- 二分答案——yyy2015c01 的 U 盘(洛谷 P2370)
题目选自洛谷P2370 两种解法,01背包+排序,或是直接二分即可 写了二分最后只有40的分...刚好过了给的四个样例 哭辽~想了半天不知道哪里错了 题目背景 在 2020 年的某一天,我们的 yyy ...
- 二分答案——砍树(洛谷 P1873)
题目选自洛谷P1873 分析:如果句子非常低,可以收集到的木材会更多,以至于超过需要的数量.随着砍树高度逐渐增大,获得的木材会逐渐减少.砍树高度增加到一定程度时,收集到的木材就会开始不够用.因此需要找 ...
- 洛谷 P2440 木材加工(二分,含边界处理的笔记)
题目链接: 木材加工 - 洛谷https://www.luogu.com.cn/problem/P2440 非常简单的题目,用left和right控制二分边界,ans一开始是0,每次check到符合 ...
最新文章
- PHP开发错误锦集(持续更新)
- Python进阶1——一摞纸牌
- 结构化查询语言(Structured Query Language)
- 中间件是什么?在.NET Core中的工作原理又是怎样的呢?
- Ixia推出首款太比特级网络安全测试平台
- 像postman上传文件_90%的测试工程师是这样使用Postman做接口测试的……
- 浅说深度学习(4):增强学习
- 再探正则表达式c++-html中搜索url
- 如何判断两物体加速度相等_力学实验2:探究加速度和力的关系
- Vue2系列教程——vue-pdf插件
- 蓝牙BLE芯片PHY6222之SPI驱动ST7789
- 游戏测试一工作原理及测试流程
- 【C语言】abs()用法及其他绝对值函数
- 挂载移动硬盘到ubuntu server
- 【C语言】判断数字是否为素数或合数
- Java并发教程(Oracle官方资料) 分享
- 关于JS如何实现图片闪烁
- APP的三种类型以及区分方法
- 考生都难哭了,用 Python 分析了一下,这里才是高考地狱级难度
- 思科全球副总裁、大中华区首席技术官曹图强:网络安全不是奢侈品,而是必需品...
热门文章
- 对5种主流编程语言的吐槽
- 2014全国计算机二级ms office,2014计算机二级MS Office真题及答案
- linux运维趋势 37期刊为啥没有,linux运维常见问题
- 评价的等级优良差_满意程度等级划分
- mybatis collection标签_一对多的关系,在MyBatis中如何映射?
- java 数组 树_java使用顺序数组实现二叉树
- 7-7 硬币找钱问题 (10 分)(思路+详解+double类型数据的处理)Come baby!!!!!!!!!!!!!!!!!!!!
- 7-20 表达式转换 (25 分)(代码详解+题目分析)
- 计算机系统结构答案汤志忠,计算机系统结构(第2版)郑伟明汤志忠课后习题答案以及例题收录.doc...
- [C++11]基于范围的for循环