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

蓝桥杯备考:奶牛晒衣服

这道题第一眼想用贪心做,1 2  3  我们可以让最多的3用烘干机1秒就能完成,那么是不是我们每次都给湿度最大的衣服用烘干机呢?我们试试哈,比如[5,8],每秒晒干1我们给8衣服一直用烘干机是需要4秒的,4秒后8这个衣服干了,我们还要多花1秒给5这个衣服,一共是5秒,举个反例,如果我们先给8用三次烘干机,8还剩2,5还剩2,我们再给5用一次烘干机,只需要4秒,因为啥呢,因为我们如果一直给最大的用烘干机,烘干完之后其他的还没烘干,这时候时间就出现空余了

再说个极端的例子,18,16 ,烘干机+2,普通+1,这时候 如果我们烘干机全给18的话,6秒解决18,还剩10,这时候烘干机在全给10,4秒,一共10秒

如果我们先给18五次烘干机会,就变成 3,11了,这时候我们再给11三次,变成0,2了,再来1秒就行了,一共是5+3+1 9秒,so我们不能用贪心做这道题

我们可以用二分答案,来枚举所有答案,最短时间的话,在一个时间能完成,后面的时间就都能完成了,所以它是有一个二段性的

由此,我们已经可以做出本题来了,枚举范围就从1到5e5就行了

#include <iostream>
using namespace std;
const int N = 5e5+10;
typedef long long ll;
ll n,a,b;ll w[N];
bool check(ll x)
{
	ll cnt  = 0;
	for(int i = 1;i<=n;i++)
	{
		if(w[i] <= a*x) continue;
		ll t = w[i]-a*x;
		cnt += (t/b+(t%b ? 1 : 0));
	}
	return cnt<=x ? true : false;
	
}

int main()
{
	cin >> n >> a >> b;
	for(int i = 1;i<=n;i++)
	{
		cin >> w[i];
	 } 
	ll l = 1,r= 5e5;
	while(l<r)
	{
		ll mid = (l+r)/2;
		if(check(mid)) r= mid;
		else l = mid+1;
	 } 
	 cout << l << endl;
	
	
	
	
	
	
	
	
	return 0;
 }            

相关文章:

  • Android NDK --- JNI从入门到基础的全面掌握 (上)
  • github上传本地文件到远程仓库(空仓库/已有文件的仓库)
  • python环境集成整理
  • Linux动态库和静态库
  • RAGFlow + LlamaIndex 本地知识库RAG增强架构与实现直播智能复盘
  • 【入门初级篇】布局类组件的使用(1)
  • 如何通过Python实现自动化任务:从入门到实践
  • 2025年 cocosCreator 1.8 定制 JavaScript 引擎
  • Web Component 教程(五):从 Lit-html 到 LitElement,简化组件开发
  • 用css绘制收银键盘
  • 实验三 内存管理
  • RocketMQ 架构
  • std::move
  • Unity3D开发AI桌面精灵/宠物系列 【二】 语音唤醒 ivw 的两种方式-Windows本地或第三方讯飞等
  • 一些常用的docker镜像及命令 python各版本(持续更新中)
  • pnpm config set ignore-workspace-root-check true
  • 【Spring Boot 中 `@Value` 注解的使用】
  • Python散点图(Scatter Plot):高阶分析、散点图矩阵、三维散点图及综合应用
  • 塔能智慧运维箱:智慧城市的“量子跃迁”,创新与售后的双轨驱动
  • 硬件基础(5):(1)二极管初步认识
  • 药明康德一季度净利增长89%,在手订单增超四成至523亿元
  • 古籍新书·2025年春季|中国土司制度史料集成
  • 央行副行长:我们在研究丰富政策工具箱,将适时推出增量政策
  • 学校食堂饭菜有蛆?举报人遭值班人员辱骂?四川苍溪县教育局回应
  • 传染病防治法修订草案提请三审,拟加强医疗机构疾控能力建设
  • 银川市市长信箱被指已读乱回,官方回应