目录

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

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

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

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

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

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

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

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

cpp 复制代码
#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;
}
本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
老马啸西风13 分钟前
MOSN(Modular Open Smart Network)-03-流量劫持
网络·算法·云原生·中间件·golang
Whisper_Yu19 分钟前
蓝桥杯嵌入式备赛记录—CubeMX配置
职场和发展·蓝桥杯
tpoog19 分钟前
[贪心算法] 加油站 && 单调递增的数字 && 坏了的计算器 && 合并区间 && 无重叠区间
算法·贪心算法
CoovallyAIHub21 分钟前
融合YOLO11与行为树的人机协作智能框架:动态工效学优化与自适应安全决策
算法·计算机视觉
lynn-661 小时前
【深度学习与大模型基础】第8章-概率分布
人工智能·算法·机器学习·概率论
元清加油1 小时前
【C++】:智能指针
开发语言·数据结构·数据库·c++·算法
CoreFMEA软件1 小时前
0 - 1 背包问题介绍与 C# 代码实现
开发语言·算法·c#·背包问题
郭涤生1 小时前
第 五 章:优化算法_《C++性能优化指南》_notes
c++·笔记·算法·性能优化
uhakadotcom1 小时前
计算广告的核心算法与应用
算法·架构·github
进取星辰1 小时前
PyTorch 深度学习实战(21):元强化学习与 MAML 算法
pytorch·深度学习·算法