h的蓝桥杯每日一题

2.烤肠试吃【算法赛】 - 蓝桥云课

这个题主要是考察的二分+贪心结合去找最小值最大化的问题

在这个题当中我们可以看到需使用优先队列(最小堆)来管理烤架可用时间(快速找到最早可用烤架)

cpp 复制代码
#include<iostream>
#include<vector>
#include<algorithm>
#include<queue>
using namespace std;
typedef long long ll;
const int N=100010;
ll n,k,d;
ll a[N];
bool can(ll t)
{
	priority_queue<ll,vector<ll>,greater<ll>> pq;
	for(int i=0;i<k;i++)pq.push(0);
	for(int i=0;i<n;i++)
	{
		ll avail=pq.top();//空闲烤架的时间 
		pq.pop();
		ll start=max(avail,a[i]);//得到目前能用烤架的最小时间 
		ll finish=start+d;//得到考场的时间 
		if(finish>t)return false;
		pq.push(finish);
	}
	return true;
}

int main()
{
	cin>>n>>k>>d;
	for(int i=0;i<n;i++)cin>>a[i];
	sort(a,a+n);
	ll l=a[0]+d;
	ll r=a[n-1]+n*d;
	while(l<r)
	{
		ll mid=l+(r-l)/2;
		if(can(mid))
		{
			r=mid;
		}
		else l=mid+1;
	}
	cout<<l<<endl;
	return 0;
}
相关推荐
小白菜又菜11 小时前
Leetcode 2075. Decode the Slanted Ciphertext
算法·leetcode·职场和发展
前端大波12 小时前
前端面试通关包(2026版,完整版)
前端·面试·职场和发展
zhaoshuzhaoshu13 小时前
人工智能(AI)发展史:详细里程碑
人工智能·职场和发展
念越15 小时前
蓝桥杯4期模拟单元测试解析
蓝桥杯·单元测试
仟濹16 小时前
2026-04-09~10-复习计划+蓝桥杯注意的点
职场和发展·蓝桥杯
skywalker_1117 小时前
力扣hot100-5(盛最多水的容器),6(三数之和)
算法·leetcode·职场和发展
生信研究猿17 小时前
leetcode 226.翻转二叉树
算法·leetcode·职场和发展
liu****18 小时前
第十五届蓝桥杯大赛软件赛国赛C/C++大学B组
c++·算法·蓝桥杯·acm
念越20 小时前
蓝桥杯模拟4期自动化测试代码完整版解析
软件测试·蓝桥杯·自动化
wfbcg21 小时前
每日算法练习:LeetCode 3. 无重复字符的最长子串 ✅
算法·leetcode·职场和发展