首页 > 其他分享 >[2010年NOIP普及组] 接水问题

[2010年NOIP普及组] 接水问题

时间:2022-08-16 19:57:11浏览次数:68  
标签:同学 接完 普及 NOIP 水量 int 已接 接水 2010

学校里有一个水房,水房里一共装有 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 个整数,表示接水所需的总时间。
样例输入
5 3
4 4 1 2 1
样例输出
4
提示
【输入输出样例 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 秒。 
【数据范围】 
1≤n≤10000,1≤m≤100 且 m≤n; 
1≤wi≤100。
模拟  
#include<bits/stdc++.h>

using namespace std;

int T,P,p[10000];

bool Cmp(int x,int y)
{
    return x>y;
} 

int main()
{
    cin>>P>>T;
    
    for(int i=1;i<=P;++i)
    {
        cin>>p[i];
    }
    for(int i=T+1;i<=P;++i)
    {
        sort(p+1,p+1+T);
        p[1]+=p[i];
    }
    
    sort(p+1,p+1+T,Cmp);
    cout<<p[1];
    return 0;
}

 

标签:同学,接完,普及,NOIP,水量,int,已接,接水,2010
From: https://www.cnblogs.com/XdzxBo/p/16592769.html

相关文章

  • [2010年NOIP普及组] 接水问题
    [2010年NOIP普及组]接水问题分析:根据题意,要输出所用时间最长的那个人(包括那个人在等待的时间),分为两种情况,第一种是水龙头多于要打水的人数,这种情况下就可以直接写一个比......
  • 题解 [ZJOI2010]排列计数
    好题。%你赛考到了不会摆烂,后来发现原来有向下取整,题面没有。。。(就算有我也做不出来啦qAq首先我们会发现这个长得就是小根堆,答案就变成了小根堆的计数。首先最小的......
  • [2007年NOIP普及组] 纪念品分组
    [2007年NOIP普及组]纪念品分组思路:运用贪心算法。将纪念品按价格排序,然后一前一后两两组队,如果没有超过上限w,就组队成功;反之,就失败,较大的一个单独成一组,较小的再等别的来......
  • [2002年NOIP提高组] 均分纸牌
    [2002年NOIP提高组]均分纸牌思路:贪心算法。将n堆纸牌的平均数算出来,将每堆纸牌i与平均数的差值转到i+1堆纸牌上,每操作一步,计数器+1。最后输出操作步数就好。代码如下:#i......
  • [2002年NOIP提高组] 均分纸牌
    [2002年NOIP提高组]均分纸牌分析:根据题意,先求所有数字的平均数,然后遍历数字与平均数比较,如果大于平均数,那么后一堆纸牌加上前一堆纸牌多出来的,同时步数+1,反之如果小于平......
  • [NOIP2007 普及组] 纪念品分组
    题目链接:https://www.luogu.com.cn/problem/P1094试题分析:乐乐要进行分组,分组原则是一个组中最多两个数,且两数之和小于给定的上限值,乐乐想找到最少能分多少组。我们发现,这......
  • [2007年NOIP普及组] 纪念品分组
    分析:因为最多两个一组,所以可以按最大的和最小的一组,是否满足条件,如果满足,同时赋值0,.#include<bits/stdc++.h>usingnamespacestd;intn,m,i,a[300000],s=0,j;intmain()......
  • [NOIP2002 提高组] 均分纸牌
    题目链接:https://www.luogu.com.cn/problem/P1031试题分析:首先分析样例:输入样例后,我们要先求出平均值,进而求出与平均值的差值: 我们能够得到三次移动:1.  7向右-4变......
  • [2002年NOIP提高组] 均分纸牌
    分析:每次移动都需要将其补全或删掉,如果这个正好是平均数,则步骤次数不增加98176-1-27-40-34-4004-40000#include<bits/stdc++.h>usingnamespacestd;......
  • [2013年NOIP提高组] 积木大赛
    [2013年NOIP提高组]积木大赛思路:只需要进行n次循环,(两个数之间,如果后面的数大于前面的)用后面的数-前面的差值累加,就能得出操作次数啦~代码如下:#include<iostream>#incl......