P1190 [NOIP2010 普及组] 接水问题(嵌套循环——贪心算法)
2022/8/15 1:23:43
本文主要是介绍P1190 [NOIP2010 普及组] 接水问题(嵌套循环——贪心算法),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
学校里有一个水房,水房里一共装有mm个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为11。
现在有nn名同学准备接水,他们的初始接水顺序已经确定。将这些同学按接水顺序从 11到nn编号,ii号同学的接水量为 w_iwi。接水开始时,11到mm 号同学各占一个水龙头,并同时打开水龙头接水。当其中某名同学jj完成其接水量要求w_jwj后,下一名排队等候接水的同学 kk马上接替 jj 同学的位置开始接水。这个换人的过程是瞬间完成的,且没有任何水的浪费。即jj 同学第 xx 秒结束时完成接水,则kk 同学第 x+1x+1 秒立刻开始接水。若当前接水人数 nn’不足 mm,则只有 nn’个龙头供水,其它 m-nm−n’个龙头关闭。
现在给出 nn 名同学的接水量,按照上述接水规则,问所有同学都接完水需要多少秒。
输入格式
第 11 行22 个整数 nn 和 mm,用一个空格隔开,分别表示接水人数和龙头个数。
第 22 行 nn 个整数w_1,w_2,…,w_nw1,w2,…,wn,每两个整数之间用一个空格隔开,w_iwi表示ii号同学的接水量。
输出格式
11 个整数,表示接水所需的总时间。
#include <iostream> using namespace std; int main() { int m,n,a,ak,m4; cin>>m>>n; int s[m]={0},w[n]={0}; for(int x=1;x<=m;++x) { cin>>s[x]; } for(int i=1;i<=m;++i) { m4=99999; for(int j=1;j<=n;++j) { if(w[j]<m4) { m4=w[j]; a=j; } } w[a]=w[a]+s[i]; } ak=0; for(int y=1;y<=n;++y) { if(w[y]>ak) { ak=w[y]; } } cout<<ak; return 0; }
这篇关于P1190 [NOIP2010 普及组] 接水问题(嵌套循环——贪心算法)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署
- 2024-04-14RAG应用开发实战02-相似性检索的关键 - Embedding
- 2024-04-14出海软件草根逆袭打法是什么?
- 2024-04-13鸿蒙原生应用再新丁!企查查 碧蓝航线 入局鸿蒙
- 2024-04-11RAG应用开发实战(01)-RAG应用框架和解析器
- 2024-04-10DevOps已死?2024年的DevOps将如何发展
- 2024-04-10码农必看:常见源代码混淆技术详解
- 2024-04-07以一当十丨TiDB 在东吴证券秀财 APP 的应用实践
- 2024-04-07月活超 1.1 亿,用户超 4 亿,你也在用的「知乎」是如何在超大规模 TiDB 集群上玩转多云多活的?来听听知乎代晓磊的答案!