算法日记2:洛谷p3853路标设置(二分答案)
一、题目:

二、解题思路:
2.1:首先,我们二分空旷指数
- 1、因为题目中要求我们求解最大值最小应该是属于
第二类模型 - 2.也就是说,当
check()函数为true时候,说明这个空旷指数是成立的,对应的路标数量 <k,此时,我们的路标还有没有使用过的,PS:路标增多,空旷指数一定是变小的 - 所以,我们此时应该让
r=mid从而达成空旷指数减少

- 因此,代码如下:
int l=0,r=L;while(l+1<r){int mid=(l+r)>>1;if(check(mid)) r=mid; //第二类模型else l=mid;}
2.2:check()函数解析
bool check(int mid) //表示当前可以达到这个'空旷指数'
{int cnt=0; //放置的目标数量int i=0; //用来枚举每一个路标,int now=0; //表示当前跳到了某个路标while(i<n+1){i++;while(a[i]-now>mid) //说明此时的两个路标不符合条件{cnt++;now+=mid; // 新增一个路标}now=a[i]; // 更新当前的位置为下一个路标的位置}if(cnt<=k) return true;else return false;
}
bool check(int mid) //表示当前可以达到这个'空旷指数'int cnt=0; //放置的目标数量int i=0; //用来枚举每一个路标,int now=0; //表示当前跳到了某个距离
- 接下来我们来遍历每个路标
while(i<n+1)i++ - 此时我们需要考虑,假如两个原定的路标在插入一个路标之后,仍然不满足条件,

- 1、如图所示,当我们在
50--101之间插入了一个值之后,无论怎么插入,都是仍然不满足条件的 - 2、因此我们想,那么我们应该怎么插才会使得我们在一次插入后能达到最远的距离呢?
- 是不是应该是
now+mid,这样我们就能使得这一次的插入性价比最高!!也就可以使得计算出这段距离的最少插入次数 - 随后更新我们目前的位置就好
now=a[i] - 最后比较
cnt--k的值就好
三、完整代码如下:
#include<bits/stdc++.h>
using namespace std;const int N=2e5;
int a[N];
int L,n,k;bool check(int mid) //表示当前可以达到这个'空旷指数'
{int cnt=0; //放置的目标数量int i=0; //用来枚举每一个路标,int now=0; //表示当前跳到了某个路标while(i<n+1){i++;while(a[i]-now>mid) //说明此时的两个路标不符合条件{cnt++;now+=mid; // 新增一个路标}now=a[i]; // 更新当前的位置为下一个路标的位置}if(cnt<=k) return true;else return false;
}int main()
{cin>>L>>n>>k;for(int i=1;i<=n;i++){cin>>a[i];}int l=0,r=L;while(l+1<r){int mid=(l+r)>>1;if(check(mid)) r=mid;else l=mid;}cout<<r<<'\n';return 0;
}
相关文章:
算法日记2:洛谷p3853路标设置(二分答案)
一、题目: 二、解题思路: 2.1:首先,我们二分空旷指数 1、因为题目中要求我们求解最大值最小应该是属于第二类模型2.也就是说,当check()函数为true时候,说明这个空旷指数是成立的,对应的路标数…...
浅谈云计算06 | 云管理系统架构
云管理系统架构 一、云管理系统架构(一)远程管理系统(二)资源管理系统(三)SLA 管理系统(四)计费管理系统 二、安全与可靠性保障(一)数据安全防线(…...
Blender常规设置
移动:Shift鼠标中键 旋转:鼠标中键 缩放:Ctrl鼠标中键...
c++ 中的容器 vector、deque 和 list 的区别
表格汇总: 容器存储结构随机访问性能中间插入/删除性能两端插入/删除性能内存管理特点迭代器类型适用场景vector连续存储的动态数组 O ( 1 ) O(1) O(1) O ( n ) O(n) O(n)(需要移动元素)末尾: O ( 1 ) O(1) O(1),头部…...
【物流管理系统 - IDEAJavaSwingMySQL】基于Java实现的物流管理系统导入IDEA教程
有问题请留言或私信 步骤 下载项目源码:项目源码 解压项目源码到本地 打开IDEA 左上角:文件 → 新建 → 来自现有源代码的项目 找到解压在本地的项目源代码文件,点击确定,根据图示步骤继续导入项目 查看项目目录ÿ…...
数据集-目标检测系列- 电话 测数据集 call_phone >> DataBall
数据集-目标检测系列- 电话 测数据集 call DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 需要更多数据资源和技术解决方案,知识星球: “DataBall - X 数据球(free)” 贵在坚持! …...
VUE3 自定义指令的介绍
自定义指令的概述 在 Vue 中,自定义指令是一种机制,允许开发者在模板中直接操作 DOM 元素,执行一些低级别的操作。Vue 提供了几个内置指令(如 v-if、v-for、v-model 等),但当我们需要一些特定功能时&#…...
HTML学习笔记记录---速预CSS(2) 复合属性、盒子模型、边框线、浮动、定位
复合属性写法: {font: font-style font-weitght font-size/line-height font-family} {font: 样式 粗细 字号 字体} (书写瞬间为固定的不可更改) block 块级元素 div inline 行内元素 span inline-block 行内块元素 …...
二 RK3568 固件中打开 ADB 调试
一 usb adb Android 系统,设置->开发者选项->已连接到计算机 打开,usb调试开关打开 通过 usb otg 口连接 开发上位机 (windows/linux) 上位机安装 adb 服务之后 , 通过 cmd/shell: #1 枚举设备 adb devices #2 进入 android shell adb shell # 3 验证上传下载…...
centos9设置静态ip
CentOS 9 默认使用 NetworkManager 管理网络,而nmcli是 NetworkManager 命令行接口的缩写,是一个用来进行网络配置、管理网络连接的命令工具,可以简化网络设置,尤其是在无头(没有图形界面)环境下。 1、 cd…...
【Python】Python之Selenium基础教程+实战demo:提升你的测试+测试数据构造的效率!
这里写目录标题 什么是Selenium?Selenium基础用法详解环境搭建编写第一个Selenium脚本解析脚本脚本执行结果常用的元素定位方法常用的WebDriver方法等待机制 Selenium高级技巧详解页面元素操作处理弹窗和警告框截图和日志记录多窗口和多标签页操作 一个实战的小demo…...
内网服务器添加共享文件夹功能并设置端口映射
参考网址 https://blog.csdn.net/Think88666/article/details/118438465 1.服务器安装smb服务,由于网路安全不允许使用默认端口(445,446),于是修改端口为62445、62446。 2.每台需要共享的电脑都要修改端口映射&#x…...
第三十六章 Spring之假如让你来写MVC——拦截器篇
Spring源码阅读目录 第一部分——IOC篇 第一章 Spring之最熟悉的陌生人——IOC 第二章 Spring之假如让你来写IOC容器——加载资源篇 第三章 Spring之假如让你来写IOC容器——解析配置文件篇 第四章 Spring之假如让你来写IOC容器——XML配置文件篇 第五章 Spring之假如让你来写…...
TypeScript语言的学习路线
TypeScript语言的学习路线 TypeScript(TS)是由Microsoft开发的一种开源编程语言,是JavaScript的超集,提供了严格的类型检查和基于类的面向对象编程特性。随着前端开发的不断进步,TypeScript逐渐成为了现代前端开发的主…...
Python爬虫-汽车之家各车系周销量榜数据
前言 本文是该专栏的第43篇,后面会持续分享python爬虫干货知识,记得关注。 在本专栏之前,笔者在文章《Python爬虫-汽车之家各车系月销量榜数据》中,有详细介绍,如何爬取“各车系车型的月销量榜单数据”的方法以及完整代码教学教程。 而本文,笔者同样以汽车之家平台为例,…...
C#格式化输出
上一期: C#格式化输出-CSDN博客 字符串插值 字符串插入功能,使得我们可以更直观地嵌入表达式到字符串中,只需要在字符串前加上$符号即可实现这一点。着中国方法不仅提高了代码的可读性,而且简化了字符串构造的过程。 使用Inse…...
Open FPV VTX开源之默认MAVLink设置
Open FPV VTX开源之默认MAVLink设置 1. 源由2. 准备3. 连接4. 安装5. 配置6. 测试6.1 启动wfb-ng服务6.2 启动wfb-ng监测6.3 启动QGroundControl6.4 观察测试结果 7. 总结8. 参考资料9. 补充9.1 telemetry_tx异常9.2 DEBUG串口部分乱码9.3 PixelPilot软件问题 1. 源由 飞控图传…...
【初识扫盲】逆概率加权
我们正在处理一个存在缺失数据的回归模型,并且希望采用一种非参数的逆概率加权方法来调整估计,以应对这种缺失数据的情况。 首先,我们需要明确问题的背景。我们有样本 { ( Y i , X i , r i ) : i 1 , … , n } \left\{\left(Y_i, \boldsym…...
Ubuntu中双击自动运行shell脚本
方法1: 修改文件双击反应 参考: https://blog.csdn.net/miffywm/article/details/103382405 chmod x test.sh鼠标选中待执行文件,在窗口左上角edit菜单中选择preference设计双击执行快捷键,如下图: 方法2: 设置一个应用 参考: https://blo…...
理解AJAX与Axios:异步编程的世界
理解AJAX与Axios:异步编程的世界 在现代Web开发中,异步编程作为一种处理复杂操作的方式,已经成为不可或缺的一部分。AJAX(Asynchronous JavaScript and XML)和Axios是两种实现异步请求的流行技术。本文将深入探讨这两…...
SDS011传感器驱动开发:嵌入式PM2.5/PM10检测实战指南
1. SDS011传感器库技术解析:嵌入式系统中的PM2.5/PM10颗粒物检测实践指南1.1 项目定位与工程价值SDS011是由中国Nova Fitness公司推出的低成本、高可靠性激光散射式颗粒物传感器,专为环境空气质量监测设计。该传感器可同时输出PM2.5和PM10质量浓度数据&a…...
C语言指针核心解析与六大实战应用
1. 指针在C语言中的核心地位指针是C语言的灵魂所在,它直接操作内存地址的特性赋予了程序员极大的灵活性。在嵌入式开发领域,指针的使用频率尤其高,因为我们需要直接与硬件寄存器打交道,进行内存管理等底层操作。注意:指…...
千问3.5-9B镜像一键调用:OpenClaw自动化办公实战
千问3.5-9B镜像一键调用:OpenClaw自动化办公实战 1. 为什么选择OpenClaw千问3.5-9B组合? 去年冬天,我发现自己每天要花2小时处理邮件归档和会议记录整理。当我尝试用传统RPA工具时,发现它们对非结构化文本的处理能力有限——直到…...
龙迅LT9211D芯片解析:如何实现MIPI与双端口LVDS的高效转换
1. 龙迅LT9211D芯片的核心价值 第一次接触龙迅LT9211D芯片是在一个车载显示项目上,当时客户要求实现4K视频从主控芯片到双屏显示的无损传输。这个看似简单的需求背后,其实隐藏着MIPI和LVDS两种信号标准的转换难题。LT9211D的出现完美解决了这个问题&…...
SpringBoot-基础面试篇
什么是 Spring Boot?Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,使开发者能快速上手。为什么要用Spring…...
当PLC网口IP丢了怎么办?用Wireshark抓LLDP包,免费找回施耐德M580的地址
工业现场急救指南:用Wireshark找回施耐德M580 PLC的失踪IP地址 那天下午三点,工厂生产线突然停机,监控系统显示PLC通讯中断。当我冲到控制柜前,发现前任工程师留下的文档里,M580的IP地址记录栏赫然写着"见设备标签…...
Switch手柄电脑连接全攻略:BetterJoy开源工具使用指南
Switch手柄电脑连接全攻略:BetterJoy开源工具使用指南 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode.com/…...
基于SVC和PSS的电力系统暂态稳定性研究:Matlab/Simulink仿真与结果分析
基于SVC和PSS的电力系统暂态稳定性研究 【软件】Matlab/Simulink、Word; 【说明】通过仿真各类短路故障,验证静止无功补偿器(SVC)和电力系统稳定器(PSS)对于提高电力系统暂态稳定性的重要作用; 【文件】包括:Matlab/Simulink仿真模…...
Ollama环境变量全解析:除了OLLAMA_GPU_LAYER,这些参数也能大幅提升你的模型运行效率
Ollama环境变量全解析:除了OLLAMA_GPU_LAYER,这些参数也能大幅提升你的模型运行效率 当你已经成功配置Ollama的GPU基础功能后,真正的性能优化之旅才刚刚开始。那些隐藏在环境变量列表中的参数,就像赛车引擎舱内的精密调校旋钮&…...
CANOE进阶:CAPL文件读写实战与数据持久化策略
1. CAPL文件读写在车载测试中的核心价值 第一次接触CAPL文件读写功能时,我正负责一个车载ECU的耐久性测试项目。当时需要连续记录72小时的CAN报文数据,如果仅靠CANoe的Trace窗口查看,不仅效率低下,后期分析更是无从下手。这时我才…...
