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

【2024.10.2练习】奶牛晒衣服

题目描述


题目分析

采用贪心的思路固然正确:每次用烘干机晒最湿的衣服。但是这样一步步模拟,每秒钟都要处理n件衣服的湿度,显然超时。不妨采用二分搜索,遍历所有可行解,求出其中的最小解。


我的代码

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
typedef long long ll;
ll c[500002];
ll c_0[500002];
ll n = 0;
ll a = 0;
ll b = 0;
void arrcopy(ll x[], ll y[]) {
	for (int i = 0; i < n; i++)
	{
		x[i] = y[i];
	}
}
//判断t时间内能否晒干所有衣服
bool Available(ll t) {
	arrcopy(c, c_0);
	for (int i = 0; i < n; i++)
	{
		c[i] -= a * t;
	}
	ll r = t;//剩余时间
	for (int i = 0; i < n; i++)
	{
		if (c[i] > 0 && c[i] % b == 0) {
			r -= c[i] / b;
		}
		else if (c[i] > 0 && c[i] % b != 0) {
			r -= c[i] / b + 1;
		}
	}
	arrcopy(c, c_0);
	if (r < 0) return false;
	else return true;
}
int main() {
	cin >> n >> a >> b;
	for (int i = 0; i < n; i++)
	{
		cin >> c_0[i];
	}
	//Binary Search
	ll lb = -1;
	ll rb = 500002;
	while (rb - lb > 1) {
		ll mid = (lb + rb) / 2;
		if (Available(mid)) rb = mid;
		else lb = mid;
	}
	cout << rb;
	return 0;
}


http://www.kler.cn/news/331323.html

相关文章:

  • Vue diff 算法介绍
  • 《江苏科技大学学报(自然科学版)》
  • 解决方法:PDF文件打开之后不能打印?
  • docker 搭建minimalist-web-notepad
  • OpenGL ES 顶点缓冲区和布局(3)
  • spring揭秘25-springmvc04-servlet容器与springmvc容器总结
  • 在线css像素px到Em的转换器
  • 二值图像的面积求取的两种方法及MATLAB实现
  • Java - LeetCode面试经典150题 - 矩阵 (四)
  • 【羊毛资源】华为云开发者云主机免费申请使用指南
  • Docker 容器日志记录与管理:日志输出、轮转与配置实践
  • Qt --- 系统相关---事件、文件操作、多线程编程、网络编程、多媒体
  • SpringBoot整合QQ邮箱
  • 春潮涌动:构建“衣依”服装销售平台的Spring Boot之旅
  • 信息安全工程师(32)认证技术方法
  • Go语言接口与多态
  • Python 中的 os 模块
  • openpnp - 吸嘴校正失败的opencv参数分析
  • C题(四)水仙花数
  • 基于SSM的列车订票管理系统(含源码+sql+视频导入教程+文档+PPT)