博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
接水问题(2010年NOIP全国联赛普及组)
阅读量:5753 次
发布时间:2019-06-18

本文共 1490 字,大约阅读时间需要 4 分钟。

时间限制: 1 s   
 空间限制: 128000 KB
题目描述 
Description

学校里有一个水房,水房里一共装有m 个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为1。

现在有n 名同学准备接水,他们的初始接水顺序已经确定。将这些同学按接水顺序从1到n 编号,i 号同学的接水量为wi。接水开始时,1 到m 号同学各占一个水龙头,并同时打开水龙头接水。当其中某名同学j 完成其接水量要求wj 后,下一名排队等候接水的同学k马上接替j 同学的位置开始接水。这个换人的过程是瞬间完成的,且没有任何水的浪费。即j 同学第x 秒结束时完成接水,则k 同学第x+1 秒立刻开始接水。若当前接水人数n’不足m,则只有n’个龙头供水,其它m−n’个龙头关闭。

现在给出n 名同学的接水量,按照上述接水规则,问所有同学都接完水需要多少秒。

 

输入描述 
Input Description

第1 行2 个整数n 和m,用一个空格隔开,分别表示接水人数和龙头个数。

第2 行n 个整数w1、w2、……、wn,每两个整数之间用一个空格隔开,wi 表示i 号同
学的接水量。

 

输出描述 
Output Description

输出只有一行,1 个整数,表示接水所需的总时间。

 

样例输入 
Sample Input

5 3

4 4 1 2 1

 

样例输出 
Sample Output

4

 

数据范围及提示 
Data Size & Hint

n<=10000, m<=100

第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 秒。

維護一個小根堆,最後輸出堆數組中的最大值就行了。

代碼實現:

1 #include
2 #include
3 using namespace std; 4 int n,m,a,b,c,d,ans,dui[120]; 5 void xx(int k){ 6 b=2*k;c=2*k+1; 7 if(dui[b]>dui[c]&&c<=m) d=c; 8 else d=b; 9 if(d>m) return;10 if(dui[k]>dui[d]){a=dui[k];dui[k]=dui[d];dui[d]=a;}11 xx(d);12 }13 void xgd(int x){14 dui[1]+=x;15 xx(1);16 }17 int main(){18 cin>>n>>m;19 for(int i=1;i<=n;i++){cin>>a;xgd(a);}20 for(int i=1;i<=m;i++) ans=max(ans,dui[i]);21 printf("%d\n",ans);22 return 0;23 }
View Code

 

經典入門題~

转载于:https://www.cnblogs.com/J-william/p/6044675.html

你可能感兴趣的文章
linux服务之apache
查看>>
varnish详解与实际应用案例
查看>>
oracle 11g中 alert文件的变化
查看>>
centos 7 删除 virbr0 虚拟网卡
查看>>
构建简单电子邮件系统
查看>>
find命令
查看>>
通过网络安装系统
查看>>
RedHat 7.2配置本地yum源
查看>>
Form表单中method="post/get'的区别
查看>>
u盘安装xp,win7 win8系统
查看>>
tomcat内存配置
查看>>
wireshark filter syntax
查看>>
[读书笔记]机器学习:实用案例解析(2)
查看>>
基于Kubernetes的CI/CD&Pipeline流水线解决方案
查看>>
营销策略的五个特点
查看>>
java通讯录完善功能:请问各位下面的程序怎么添加 修改 的功能呢?
查看>>
keepalived 高可用配置实例
查看>>
商翼ERC企业管理软件的核心竞争优势
查看>>
刚换了新账号
查看>>
清华的游泳馆终于重新开馆了
查看>>