路标设置

news/2024/11/15 22:59:58/文章来源:https://www.cnblogs.com/phuzzz/p/18548827

路标设置

题目背景

B 市和 T 市之间有一条长长的高速公路,这条公路的某些地方设有路标,但是大家都感觉路标设得太少了,相邻两个路标之间往往隔着相当长的一段距离。为了便于研究这个问题,我们把公路上相邻路标的最大距离定义为该公路的“空旷指数”。

题目描述

现在政府决定在公路上增设一些路标,使得公路的“空旷指数”最小。他们请求你设计一个程序计算能达到的最小值是多少。请注意,公路的起点和终点保证已设有路标,公路的长度为整数,并且原有路标和新设路标都必须距起点整数个单位距离。

输入格式

\(1\) 行包括三个数 \(L,N,K\),分别表示公路的长度,原有路标的数量,以及最多可增设的路标数量。

\(2\) 行包括递增排列的 \(N\) 个整数,分别表示原有的 \(N\) 个路标的位置。路标的位置用距起点的距离表示,且一定位于区间 \([0,L]\) 内。

输出格式

输出 \(1\) 行,包含一个整数,表示增设路标后能达到的最小“空旷指数”值。

样例 #1

样例输入 #1

101 2 1
0 101

样例输出 #1

51

提示

公路原来只在起点和终点处有两个路标,现在允许新增一个路标,应该把新路标设在距起点 \(50\)\(51\) 个单位距离处,这样能达到最小的空旷指数 \(51\)

\(50\%\) 的数据中,\(2 \leq N \leq 100\)\(0 \leq K \leq 100\)

\(100\%\) 的数据中,\(2 \leq N \leq 100000\), \(0 \leq K \leq100000\)

\(100\%\) 的数据中,\(0 < L \leq 10000000\)






题解

改代码改死我了(T^T)

大家一定要记得在反复出问题时检查一下,是不是撤销恢复删除漏了什么。

也要注意在一些循环中用 if() 来提前结束循环,避免超时。

改了很久,因此注释写地还算详细,凑合看吧。

#include<stdio.h>int len, num, sig, ans;//len:路径长度,num:初始路标数,sig;增加的路标数int p[1000000];//路标位置int main()
{scanf("%d%d%d", &len, &num, &sig);for (int i = 0; i < num; i++)scanf("%d", &p[i]);int l = 0, r = len, mid;while (l <= r){mid = l + (r-l) / 2;//mid:当前最大路径长度int cnt = 0,tmp = 0;//cnt:增加的路标数,tmp:当前路标位置tmp = 0;//初始化tmp为第一个路标位置//分割路标for (int i = 0; i < num;){   if (p[i] - tmp > mid)//如果当前路标位置与tmp之间的距离大于mid,则分割路标{tmp += mid;//tmp:当前路标位置cnt++;//路标数}else{tmp = p[i];//tmp:指向当前路标位置i++;//i:指向下一个路标位置}//*****避免超时*****//路标数大于sig,则退出循环if(cnt > sig)break;}//路段数小于sig+num,则减小mid以增加路段数if (cnt <= sig){ans = mid;r = mid - 1;}else l = mid + 1;}printf("%d", ans);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/834291.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024-2025-1 20241320 《计算机基础与程序设计》第8周学习总结

2024-2025-1 20241320 《计算机基础与程序设计》第8周学习总结 作业信息 |这个作业属于哪个课程| https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP |这个作业要求在哪里| https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08 |这个作业的目标| 功能设计与面向对象设…

项目冲刺11.15

这个作业属于哪个课程 计科22级34班这个作业要求在哪里 作业要求这个作业的目标 进行为期七天的项目冲刺并记录前言 本篇博客是项目冲刺的第七篇,七篇博客的汇总如下:博客汇总第一篇博客第二篇博客第三篇博客第四篇博客第五篇博客第六篇博客第七篇博客团队简介队名 拖延是你不…

Latex 安装

使用的开发环境是 VSCode. Latex 在编译时需要用到宏包. 宏包到底是啥? 有啥作用? 从何处下载? Latex 软件的安装:texlive: 一次性下载所有的宏包. 磁盘需求较大, 约 7 ~ 8 G.miktex: 仅下载必要的宏包, 编译时补充下载宏包. 磁盘需求较小, 约几百 M.清华大学开源软件镜像站…

20222424 2024-2025-1 《网络与系统攻防技术》实验五实验报告

20222424 2024-2025-1 《网络与系统攻防技术》实验五实验报告 1.实验内容 (1)从www.besti.edu.cn、baidu.com、sina.com.cn中选择一个DNS域名进行查询,获取如下信息:DNS注册人及联系方式 该域名对应IP地址 IP地址注册人及联系方式 IP地址所在国家、城市和具体地理位置 PS:…

Windows程序设计指南

Windows程序设计指南“到Petzold的书中找找”——仍然是解决Windows程式开发各种疑难杂症时的灵丹妙药。在第五版的《Windows程式开发设计指南》中,作者身为倍受敬重的WindowsPioneerAward(Windows开路先锋奖)得主,依据最新版本Windows作业系统,以可靠的取材资料校定这一本…

Windows高级调试

Windows高级调试中文版文档摘要: 本书《Windows高级调试》主要讲解Windows高级调试技术和工具,包括调试器简介、调试器揭密、符号文件与源文件的管理、栈内存破坏、堆内存破坏、安全、进程间通信、资源泄漏、同步、编写定制的调试扩展、64位调试、事后调试、Windows Vista基础…

iman——冲刺日志(第四天)

又一阉割版 团队成员分工与进度 📝👥组别 成员 完成的任务 完成任务所用时间 (小时) 剩余时间 (小时)前端 阿依娜孜 完成了行程概览地图中标记连线与探索功能的删除与添加。 3 2前端 郭剑敏 实现了地图标点的驾车路线绘制功能。 3 1前端 王梓铭 优化了主页与导航栏布局,提…

1.11--06:月度开销

http://noi.openjudge.cn/ch0111/06/月度开销题目传送门思路 给定连续N天的开销,需要将这些天分成M个财政周期,使得开销最多的财政周期的开销尽可能少。 首先,我们可以确定一个财政周期的长度l,即将N天平均分成M个财政周期。这样每个财政周期的长度就是N/M。 然后,我们需要…

SIM Jacker攻击分析

攻击者使用普通手机发送特殊构造的短信即可远程定位目标,危害较大。sim卡的使用在手机上的使用非常普遍,所以一旦SIM卡上出现什么问题就会造成非常大的影响。在19年的报告纰漏中,在全球估算共有10亿设备的sim卡容易遭受SIMJacker攻击,这篇也是比较浅显的对整个攻击进行分析…

shell动态修改yml配置实例

yq安装https://github.com/mikefarah/yq/tree/master每个yq版本支持的选项参数都不一样修改Dockerfile[root@instance base-tlog-test]# vi Dockerfile FROM 192.168.30.113/library/java:latest ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime &am…

『模拟赛』NOIP2024加赛5

Rank 反向挂分大王A. 暴力操作(opt) 签,但是没有人签。 都想到了二分和更新 c 值,但是 c 多多少少没更到最优。 首先还是调和级数预处理,倒序取 min。然后考虑到超过 \(m\) 的也有可能产生更小的代价,因此 \(\mathcal{O(n)}\) 枚举一遍找到最小的 \(j\) 使 \(i\times j\g…

[Moectf2024 ezMaze]

去壳 分析:迷宫分析10 * a2 - 10:Y (a1 - 1) / 8 :X 表示按字节处理迷宫迷宫以十六进制压缩,但迷宫是80 * 56的二进制迷宫 dump下来保存,转二进制,用bin(maze[2:]).zfill(8) 脚本(bfs): from collections import deque maze = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…