当前位置: 首页 > news >正文

蓝桥杯备考:二分答案之路标设置

最大距离,找最小空旷指数值,我们是很容易想到用二分的,我们再看看这个答案有没有二段性

是有这么个二段性的,我们只要二分就行了,但是二分的check函数是有点不好想的,我们枚举空旷值的时候,为了达成该空旷值,我们要在每两个路标之间插入路标,我们最好的插法就是平均插,因为靠右一点或者靠左一点都会导致极值偏大,只有最平均的情况才是去掉极值的好方法

当然如果是0~6有个路标,我们目标达成的最大空旷值是2,

我们是需要两块板子的,也就是6/2-1

当然,如果两个路标之间距离是奇数个距离的话

我们就要插三块板子也就是7/2个板子

好的,话不多说我们来实现一下我们的代码

#include <iostream>
using namespace std;
const int N = 1e5 + 10;
int len, n, k;
int a[N];
bool check(int x)
{
	int cnt = 0;
	for (int i = 1; i < n; i++)
	{
		int d = a[i + 1] - a[i];
		cnt += d/x - 1;
		if (d %x )
		{
			cnt++;
		}
	}
	return k >= cnt;
}
int main()
{
	cin >> len >> n >> k;
	for (int i = 1; i <= n; i++)
	{
		cin >> a[i];
	}
	int l = 1, r = len;
	while (l < r)
	{
		int mid = (l + r) / 2;
		if (check(mid)) r = mid;
		else l = mid + 1;
	}
	cout << l << endl;




	return 0;
}

相关文章:

  • 大模型-提示词工程与架构
  • RK3588开发笔记-RTL8852wifi6模块驱动编译报错解决
  • Linux操作系统7- 线程同步与互斥4(基于POSIX条件变量的生产者消费者模型)
  • moveit2基础教程上手-使用xarm6演示
  • 【工具变量】中国各地级市是否属于“信息惠民国家试点城市”匹配数据(2010-2024年)
  • 『 C++ 』错误使用std::mutex引发的error C2039: “try_lock_until“: 不是 “std::mutex“ 的成员
  • vue3:十一、主页面布局(左侧菜单折叠展开设置)
  • vulnhub靶场之【hack-me-please靶机】
  • 微前端框架深度对比与技术实现剖析
  • Cursor的五种高级用法
  • 数智读书笔记系列022《算力网络-云网融合2.0时代的网络架构与关键技术》读书笔记
  • 权限维持—Linux系统Rootkit后门
  • 云原生之开源遥测框架OpenTelemetry(在 Gin 框架中使用 OpenTelemetry 进行分布式追踪和监控)
  • 软考通关利器:中级软件设计师结构化开发核心考点
  • UniRel论文复现过程中的问题解决办法(全)
  • 【C语言】字符串函数详解
  • AtCoder Beginner Contest 398(ABCDEF)
  • MySQL密码修改的全部方式一篇详解
  • 使用brower use AI 代理自动控制浏览器完成任务
  •  UNIX网络编程笔记:TCP客户/服务器程序示例
  • 烟花秀、新航线、购物节......上海邮轮文化旅游节今日开幕
  • 大型长读长RNA测序数据集发布,有助制定精准诊疗策略
  • 解放日报:持续拿出排头兵姿态先行者担当
  • 工行一季度净赚841亿元降3.99%,营收降3.22%
  • 言短意长|政府食堂、停车场开放的示范效应
  • 监狱法修订草案提请全国人大常委会会议审议