接水问题(贪心算法)
题目描述:
学校里有一个水房,水房里一共装有 m 个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为 1。
现在有 n 名同学准备接水,他们的初始接水顺序已经确定。将这些同学按接水顺序从 1 到 n 编号,i号同学的接水量为 wi。接水开始时,1 到 m 号同学各占一个水龙头,并同时打开水龙头接水。当其中某名同学 j 完成其接水量要求 wj后,下一名排队等候接水的同学 k 马上接替 j 同学的位置开始接水。这个换人的过程是瞬间完成的,且没有任何水的浪费。即 j 同学第 x 秒结束时完成接水,则 k 同学第 x+1 秒立刻开始接水。 若当前接水人数 n’不足 m,则只有 n’个龙头供水,其它 m-n’个龙头关闭。
现在给出 n 名同学的接水量,按照上述接水规则,问所有同学都接完水需要多少秒。
输入格式:
第 1 行2 个整数 n 和 m,用一个空格隔开,分别表示接水人数和龙头个数。
第 2 行 n 个整数 w1、w2、……、wn,每两个整数之间用一个空格隔开,wi表示 i 号同学的接水量。
1 ≤ n ≤ 10000,1 ≤ m ≤ 100 且 m ≤ n;
1 ≤ wi ≤ 100。
输出格式:
输出只有一行,1 个整数,表示接水所需的总时间。
样例输入:
样例 #1: 5 3 4 4 1 2 1样例 #2: 8 4 23 71 87 32 70 93 80 76
样例输出:
样例 #1: 4样例 #2: 163
提示:
输入输出样例1解释:
第 1 秒,3 人接水。第 1秒结束时,1、2、3 号同学每人的已接水量为 1,3 号同学接完水,4 号同学接替 3 号同学开始接水。
第 2 秒,3 人接水。第 2 秒结束时,1、2 号同学每人的已接水量为 2,4 号同学的已接水量为 1。
第 3 秒,3 人接水。第 3 秒结束时,1、2 号同学每人的已接水量为 3,4 号同学的已接水量为 2。4号同学接完水,5 号同学接替 4 号同学开始接水。
第 4 秒,3 人接水。第 4 秒结束时,1、2 号同学每人的已接水量为 4,5 号同学的已接水量为 1。1、2、5 号同学接完水,即所有人完成接水。
总接水时间为 4 秒。
时间限制: 1000ms
空间限制: 128MB
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){int n,m,a[10001]={},s=0,b[10001]={};cin>>n>>m;for(int i=0;i<n;i++){cin>>a[i];}for(int i=0;i<m;i++){b[i]=a[i];}for(int i=m;i<n;i++){sort(b,b+m);b[0]+=a[i];}sort(b,b+m);cout<<b[m-1];return 0;
}
接水问题(贪心算法)相关推荐
- P1223 排队接水(贪心算法)
题目描述 有 nn 个人在一个水龙头前排队接水,假如每个人接水的时间为 T_iTi,请编程找出这 nn 个人排队的一种顺序,使得 nn 个人的平均等待时间最小. 输入格式 第一行为一个整数 nn. ...
- 排队接水(贪心算法)
题目描述 有 nn 个人在一个水龙头前排队接水,假如每个人接水的时间为 T_iTi,请编程找出这 nn 个人排队的一种顺序,使得 nn 个人的平均等待时间最小. 输入格式 第一行为一个整数 nn. ...
- 信息学奥赛第九节 —— 贪心算法(需要安排几位师傅加工零件 + 排队打水问题)
贪心算法的特点 对于问题求解时,总是做出在当前来看是最好的选择的策略,即贪心算法不从整体来考虑问题.贪心算法与排序.高精度.背包等算法不同,没有一个特定的模板来表达贪心算法的过程. 贪心的步骤 抽象出 ...
- Suzy想吃烤蛋挞了Day35 | 贪心算法进行时:860. 柠檬水找零,406. 根据身高重建队列,452. 用最少数量的箭引爆气球
860. 柠檬水找零 solution 不要漏掉的一种情况是:如果收到了20,可以找10+5,或者5+5+5 class Solution:def lemonadeChange(self, bills ...
- 贪心算法之柠檬水java
贪心算法的基本思想: 贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,它所做出的仅是在某种意义上的局部最优解.用局部解构造全局解,即从问题的某一个初始解逐 ...
- 贪心算法:860.柠檬水找零
题目描述: 在柠檬水摊上,每一杯柠檬水的售价为 5 美元.顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 美元.10 美元或 20 美元 ...
- [2018.04.17][水][日志][6][#171~#181][贪心算法][已经丧心病狂][背景-amp;amp;amp;amp;gt;][最虚伪的算法]
[背景] 在某日和某大佬们一起举行的ACM上,我们小队面对一道多重背包题跪了...凉凉(可喜的是我AC了C,G两题). 在面对大佬们的D题上,我们使用了,啊不,第一次使用了贪心算法,奇 ...
- c语言贪心算法合并箭,LeetCode刷题题库:贪心算法
LeetCode刷题笔记:贪心算法 自大学开始,我便陆陆续续的学习一些 算法和数据结构 方面的内容,同时也开始在一些平台刷题,也会参加一些大大小小的算法竞赛.但是平时刷题缺少目的性.系统性,最终导致算 ...
- leetcode贪心算法题集锦(持续更新中)
leetcode贪心算法题集锦 leetcode贪心算法题集锦(持续更新中).python 和C++编写. 文章目录 leetcode贪心算法题集锦 一.贪心算法 1.盛最多水的容器 2.买股票的最佳 ...
- 17行代码AC_51Nod - 2133 排队接水(贪心)
励志用少的代码做高效表达 贪心算法模板题 贪心算法简单来讲即自顶向下,求解出每个子最优解,且每个子问题不会对下一个问题产生影响 题意:n个人排队接水,问如何排序才能使总等待时间最短,(正在接水的人和没 ...
最新文章
- 【问链-EOS公开课】第十二课 EOS整体代码结构
- SpringBoot 上传限制
- 生成5个不同的随机数
- arduino彩灯计时器电路_蓝牙彩灯再升级(加音乐播放功能)
- java获取一个目录下所有字谜_Java 猜字谜游戏 - osc_4jkldo6l的个人空间 - OSCHINA - 中文开源技术交流社区...
- 安装VS2010时出现进入的图标没有与需要部分升级VS10Sp1-KB983509的解决方案
- 如何在 Mac 上自定 Safari 浏览器窗口?
- 算法设计——五大算法总结
- Linux操作系统基础原理
- flash cs4 无法调试
- 大数据、数据挖掘和机器学习,带了哪些业务价值?
- 国产ChatGPT命名图鉴
- STM32基础11--模数转换(ADC)
- SimSwap 高保真人脸交换的高效框架 以及 deepfake辨别图片或者视频真假 dalle-mini文字生成图片
- matlab中接地的符号怎么打,接地符号图形_接地符号字母_接地符号画法
- 7种深度学习工具介绍
- 在“北上广深杭”做Java开发如何月薪达到2w,需要技术水平达到什么程度?
- (ICLR-2022)关于局部注意力和动态深度卷积之间的联系
- mysql批量修改替换织梦后台 文章内容 dede_addonarticle 违禁词 如不过全退等违反广告法字眼
- 种子计量系统市场现状及未来发展趋势