LeetCode LCP 33. 蓄水(暴力枚举)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

给定 N 个无限容量且初始均空的水缸,每个水缸配有一个水桶用来打水,第 i 个水缸配备的水桶容量记作 bucket[i]。小扣有以下两种操作:

  • 升级水桶:选择任意一个水桶,使其容量增加为 bucket[i]+1
  • 蓄水:将全部水桶接满水,倒入各自对应的水缸

每个水缸对应最低蓄水量记作 vat[i],返回小扣至少需要多少次操作可以完成所有水缸蓄水要求。

注意:实际蓄水量 达到或超过 最低蓄水量,即完成蓄水要求。

示例 1:
输入:bucket = [1,3], vat = [6,8]
输出:4
解释:
第 1 次操作升级 bucket[0];
第 2 ~ 4 次操作均选择蓄水,即可完成蓄水要求。示例 2:
输入:bucket = [9,0,1], vat = [0,2,2]
输出:3
解释:
第 1 次操作均选择升级 bucket[1]2~3 次操作选择蓄水,即可完成蓄水要求。提示:
1 <= bucket.length == vat.length <= 100
0 <= bucket[i], vat[i] <= 10^4

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/o8SXZn
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 枚举倒水次数,注意空的桶在水不为0时,必须 +1 次扩容
class Solution {
public:int storeWater(vector<int>& bucket, vector<int>& vat) {int ans = 0, add=0;vector<pair<int,int>> bv;for(int i = 0; i < bucket.size(); i++) {int b = bucket[i];int v = vat[i];if(v == 0)//目标为0,不用倒水continue;if(b == 0)//桶为0,必须扩容b++,add++;bv.push_back({b,v});}sort(bv.begin(), bv.end(),[&](auto a, auto b){int x = ceil(double(a.second)/a.first), y = ceil(double(b.second)/b.first);return x > y;//最多需要倒的次数放前面});if(!bv.empty()){ans = ceil(double(bv[0].second)/bv[0].first);}   // 不扩容,需要倒多少次,不排序也可以for(int t = ans-1; t>0; --t){   // 倒的次数 t int ct = 0;//扩容次数for(int i = 0; i < bv.size(); ++i){int b = bv[i].first;int v = bv[i].second;if(b*t >= v)//t次可以倒满continue;ct += ceil(double(v)/t)-b;//不能倒满,每次要倒多少容量// 还差多少容量,就是需要额外扩容次数}ans = min(ans, ct+t);//扩容次数+倒的次数}return ans+add;}
};

24 ms 7.9 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472408.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

svr公式推导_ML-支持向量:SVM、SVC、SVR、SMO原理推导及实现

目录1.导出目标2拉格朗日转换3对偶问题&#xff1a;因为是希望得出L最小时的一些参数w,b,a&#xff0c;但是目前很难一起求得最佳参数&#xff0c;所以换个思路。因为&#xff1a;所以能够容易的计算出拉格朗日乘子a约束时的最坏情况是&#xff1a;但是m个a的值还是无法求出&am…

302状态码_你见过 HTTP 哪些状态码?

❝好久没有写技术文章&#xff0c;今天在四川广元无事&#xff0c;总结一篇。附一张今天早上在嘉陵江遇见的白鹡鸰 (不是我拍的)❞白鹡鸰101 Switch Protocol200 Ok201 Created204 No Content206 Partial Content301 Moved Permanently302 Found304 Not Modified307 Temporary …

羽毛球 机器人 Robocon 2015 泰国预选赛(全国大学生机器人竞赛)

羽毛球 机器人 Robocon 2015 泰国预选赛(全国大学生机器人竞赛) 我把视频传我的优酷上了, 大家可以看看 http://i.youku.com/pomodori posted on 2015-02-04 11:26 rex686568 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/Pomodori/p/4316622.html

山西大学计算机应用专业,山西大学计算机应用技术专业

在主要课程学完并确定论文题目后&#xff0c;研究生撰写论文的时间为一年半至两年。(一)论文选题的要求1. 选题必须有一定的理论意义或应用价值论文选题必须对国民经济建设或在学术上有一定的价值。2&#xff0e;国内外研究动态论文选题时&#xff0c;学生必须掌握与该课题有关…

LeetCode LCP 34. 二叉树染色(树上DP)

文章目录1. 题目2. 解题1. 题目 小扣有一个根结点为 root 的二叉树模型&#xff0c;初始所有结点均为白色&#xff0c;可以用蓝色染料给模型结点染色&#xff0c;模型的每个结点有一个 val 价值。 小扣出于美观考虑&#xff0c;希望最后二叉树上每个蓝色相连部分的结点个数不能…

uart口图片_uart 加强了的串口调试助手,可以自动记录传输数据,并且显示图片,示波器等功能 Com Port 编程 267万源代码下载- www.pudn.com...

文件名称: uart下载 收藏√ [5 4 3 2 1 ]开发工具: C#文件大小: 10479 KB上传时间: 2014-06-06下载次数: 62提 供 者: 林元峰详细说明&#xff1a;加强了的串口调试助手&#xff0c;可以自动记录传输数据&#xff0c;并且显示图片&#xff0c;示波器等功能-Enhanced seri…

delphi 串口通信发送_关于串口通信232、485、422和常见问题,就没见过能讲这么清楚的...

先讲串口通信的一些基本概念&#xff0c;术语。如果对串口通信比较熟悉的&#xff0c;就当复习&#xff0c;如果哪里讲的不到位&#xff0c;欢迎及时指出。这里并不对串口的编程作讲解&#xff0c;主要是从应用的角度去讲一讲。因为更多的时候&#xff0c;都是产品做好了&#…

LeetCode 1822. 数组元素积的符号

文章目录1. 题目2. 解题1. 题目 已知函数 signFunc(x) 将会根据 x 的正负返回特定值&#xff1a; 如果 x 是正数&#xff0c;返回 1 。如果 x 是负数&#xff0c;返回 -1 。如果 x 是等于 0 &#xff0c;返回 0 。 给你一个整数数组 nums 。 令 product 为数组 nums 中所有元…

快速替换图片的组合-AE-样片!

模板下载网址&#xff1a;http://pan.baidu.com/s/1hqCbErM转载于:https://www.cnblogs.com/nedtwo/p/4278337.html

南昌理工学院计算机网络技术专业怎么样,南昌理工学院怎么样 重点专业是什么...

毕业季即将来临&#xff0c;报考的时候同学们和家长朋友们最关心的就是学校好不好的问题&#xff0c;想要了解学校有哪些特色专业、师资力量怎么样。下面小编整理了南昌理工学院的信息&#xff0c;供大家参考。南昌理工学院重点专业国家级特色专业&#xff1a;计算机科学与技术…

英特尔cpu发布时间表_英特尔10nm芯片开始大规模出货,先进制程时间表浮出水面...

多年延期之后&#xff0c;英特尔终于宣布其 10nm 芯片产品开始大量出货。近日&#xff0c;英特尔公布了公司 2019 年 Q3 财报。在财报会议中&#xff0c;英特尔透露了这一消息。具体而言&#xff0c;英特尔已有晶圆厂开始大批量生产 10nm 芯片&#xff0c;未来也还准备建立新厂…

matplotlib绘图_使用matplotlib库绘图

本代码演示对列表元素进行绘图并可视化代码如下&#xff1a;import matplotlib.pyplot as plt #导入matplotlib绘图库&#xff0c;并设置简称为pltlist1[i*2 for i in range(1,10)] #遍历range(1,10)里的元素&#xff0c;并每个乘以2&#xff0c;并将最终的列表赋值给list1plt.…

LeetCode 1824. 最少侧跳次数(DP)

文章目录1. 题目2. 解题1. 题目 给你一个长度为 n 的 3 跑道道路 &#xff0c;它总共包含 n 1 个 点 &#xff0c;编号为 0 到 n 。 一只青蛙从 0 号点第二条跑道 出发 &#xff0c;它想要跳到点 n 处。然而道路上可能有一些障碍。 给你一个长度为 n 1 的数组 obstacles &a…

i5集显和独显的区别_集显核显独显有哪些区别 集显核显独显区别介绍【详解】...

显卡是除处理器之外最受大家关心的硬件装备了&#xff0c;要是显卡配置不到位&#xff0c;其他再好都是浮云&#xff0c;而对于游戏玩家来说&#xff0c;显卡性能差的话更是影响游戏的运行&#xff0c;可折腾人了。今天小编为大家分享“集显”、“核显”和“独显”这3个显卡概念…

桌面软件打开都会变成计算机,我不小心把电脑界面程序的打开方式都变成一种了,怎么还原啊?...

如果不小心把电脑桌面程序的打开方式错误的设置成一种后&#xff0c;可以通过以下几种方法还原&#xff1a;方法一&#xff1a;可以通过360里的“360电脑修复专家”功能&#xff0c;进入后&#xff0c;在对话框里输入“电脑的图标异常”&#xff0c;之后立即会自动解决&#xf…

postman 使用_Postman简单使用

今天主要讲解下Postman的简单使用。在使用前&#xff0c;首先需要了解一下什么是Postman&#xff0c;它可以用来做什么&#xff1f;1、 Postman是一款自动化测试的工具&#xff0c;它可以方便的处理HTTP的请求(get、post、put、delete等)。本文主要讲解get和post的使用。2、 那…

中山大学校队选拔赛第二试题试题3【Compressed suffix array】-------2015年2月8日

一&#xff1a;题目大意 本题通过给定三个数组S0&#xff0c;P&#xff0c;S&#xff0c;其中S0是1到2n的一个排列&#xff0c;P具有2n个整数&#xff0c;且满足&#xff1a; 数组S是把数组S0中所有奇数元素全部删除并将所有偶数元素除以2并按照原来的相对顺序进行排列而得。 现…

LeetCode 1825. 求出 MK 平均值(set + queue)

文章目录1. 题目2. 解题1. 题目 给你两个整数 m 和 k &#xff0c;以及数据流形式的若干整数。 你需要实现一个数据结构&#xff0c;计算这个数据流的 MK 平均值 。 MK 平均值 按照如下步骤计算&#xff1a; 如果数据流中的整数少于 m 个&#xff0c;MK 平均值 为 -1 &#…

vue热更新无法关闭_vue-cli3热更新失效

vue-cli3热更新失效问题公司的一个使用vue-cli3搭建的项目一直无法热更新&#xff0c;每次保存代码后都需要手动刷新页面才能看到修改之后的页面&#xff0c;作为一个强迫症晚期患者&#xff0c;那肯定是忍不了。经过个人研究学习&#xff0c;修复好了项目热更新问题&#xff0…

职高计算机选修6知识点,(计算机基础考试7.doc

试卷编号&#xff1a;9619所属语言&#xff1a;计算机基础试卷方案&#xff1a;WINhy试卷总分&#xff1a;100分共有题型&#xff1a;4种一、单选 共40题 (共计40分)第1题 (1.0分) 题号:5923 难度:中 第81章一个六位的二进制数,如果其最高位和最低位都为1,则在下列十进制数中,可…