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-12-27JavaScript面试真题详解与解答
- 2024-12-27掌握JavaScript大厂面试真题:新手入门指南
- 2024-12-27JavaScript 大厂面试真题详解与解析
- 2024-12-26网络攻防资料入门教程
- 2024-12-26SQL注入资料详解:入门必读教程
- 2024-12-26初学者指南:数据库服务漏洞项目实战
- 2024-12-26网络安全项目实战:新手入门指南
- 2024-12-26网络攻防项目实战入门教程
- 2024-12-26信息安全项目实战:从入门到初步应用
- 2024-12-26SQL注入项目实战:初学者指南