接水问题

题目描述

学校里有一个水房,水房里一共装有 m 个龙头可供同学们打开水,每个龙头每秒钟的

供水量相等,均为 1。

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

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

输入输出格式

输入格式:

输入文件名为 water.in。

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

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

学的接水量。

输出格式:

输出文件名为 water.out。

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

输入输出样例

输入样例#1:

【输入样例1】
5 3
4 4 1 2 1
【输入样例2】
8 4
23 71 87 32 70 93 80 76 

输出样例#1:

【输出样例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 秒。

【数据范围】

1≤n≤10000,1≤m≤100 且 m≤n;

1≤wi≤100。

思路:

这个题体现了模拟的思想,分别让前m个人打水,然后在有一个人打完水后,w++,让第m+w个人补上去

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,j,w=0;//计有几个人已经接完了水
int a[10005];//开数组
int main()
{
    scanf("%d %d",&n,&m);
    for(int i=0;i<n;i++)scanf("%d ",&a[i]);
    for(int i=1;m+w<n;i++)//接完水的人加正在接水的人小于等于总人数,枚举每一分钟
    {
        j=0;
        while(1)
        {//查找正在接水的人中有没有接完的
            if(a[j]==i){a[j]+=a[m+w];w++;}//有接完的便让后一个加上来
            if(j==m-1)break;//这一排没有就退出
                j++;
        }
    }
    sort(a,a+n);
    printf("%d",a[n-1]);
    return 0;
}
时间: 2024-10-16 18:26:53

接水问题的相关文章

一&#183;京京得水

有一个小姑娘,今年六岁了,眼睛又圆又大,像黑豆子似的,但嘴巴挺大,很爱说话.虽然年龄比较小,可就是爱看野外的大自然,所以常常跑到野外,令家人担心,最担心的 是妈妈,妈妈常常"京京" "京京"的叫,嗓子都叫哑了. 她是一个懂得很多东西的女孩,知道很多动物和植物的名称.她也是一个很有耐心的女孩,有一件玩具,连她的妈妈,爸爸和哥哥都弄不懂该怎么玩,而她哪?就算弄乱,也要找到技巧,所以她会使用很多东西. 在一个晴朗的天气,小京京在家里又呆不住了,去找邻居家的孩子----彩云

三角函数之美-水波纹加载LoadingView

一.前言 学习是要总结的,最近几天学习了绘图相关的,但是使用的机会较少,现在又快要遗忘了,这次看了水波纹的绘制,觉得十分有意思,还是 把实现的方法记录下来.技术无他,为手熟尔,还是要多练习,空淡误国,实干兴邦,让我们看看今天的三角函数之美吧. 二.概述 肯定大家对中学学习的三角函数都不陌生吧,不过学习的sin.cos是超越函数一类函数,是初等函数的一种,借用维基百科的一张图: 一个完整的正弦函数应该是这样的:>y=Asin(ωx+φ)+h,A决定峰值,ω决定周期,φ表示初相位,h表示y轴的位置.

bzoj1601【Usaco2008 Oct】灌水

1601: [Usaco2008 Oct]灌水 Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 1589  Solved: 1035 [Submit][Status][Discuss] Description Farmer John已经决定把水灌到他的n(1<=n<=300)块农田,农田被数字1到n标记.把一块土地进行灌水有两种方法,从其他农田饮水,或者这块土地建造水库. 建造一个水库需要花费wi(1<=wi<=100000),连接两

c语言:1000瓶水,有一瓶是有毒的,现共有10只老鼠,怎么判断毒水?

问题:1000瓶水,其中有一瓶是有毒的,一只老鼠喝下毒水会一天之后死亡,现在共有10只老鼠,怎么判断哪一瓶水是毒水? 分析:2^10=1024,则可以考虑利用二进制求解 解:给1000瓶水依次标号1至1000,将10只老鼠从右向左排成一列,第一瓶水让右边第1只老鼠喝,第2瓶水让第2只老鼠喝,第3瓶水让第1,2只老鼠喝,则第4瓶水让第3只老鼠喝,......第1000瓶水依次让第4,6,7,8,9,10只老鼠喝,记死亡的老鼠为1,未死亡的老鼠为0,按照二进制表示数的方法求出这个数,就知道哪瓶是毒水

2015南阳CCPC L - Huatuo&#39;s Medicine 水题

L - Huatuo's Medicine Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 无 Description Huatuo was a famous doctor. He use identical bottles to carry the medicine. There are different types of medicine. Huatuo put medicines into the bottles and chain these b

android 水波纹

public class MyWaveView extends View{ private ArrayList<Wave> list; private int[] colors = {Color.RED,Color.BLUE, Color.DKGRAY,Color.GREEN,Color.YELLOW}; public boolean isRunning = false; public MyWaveView(Context context) { this(context,null); } pu

ZOJ 3827 Information Entropy 水

水 Information Entropy Time Limit: 2 Seconds      Memory Limit: 65536 KB      Special Judge Information Theory is one of the most popular courses in Marjar University. In this course, there is an important chapter about information entropy. Entropy is

如果是壬癸水八字的人呢?壬癸水遇风水-日课-命理-养生-日课原理与择日玄机命理养生

紧着我又接到另一个老板的电话,电话的内容是约请我晚上一起吃饭,因为他过来的时辰不好,我就让他先到我办公室坐了一会,等过了这个申时到酉时的时候再下去,因为一时分八刻,在酉时的前两刻还有申时的过度内容.所以我们在算八字的时候,要知道他的出生地和现居住,尽量要知道求测者的出生时间是几点几分,因为一个时辰要分为八刻,每一刻代表的度数也不一样,在一.二刻和七 八刻的时候就要两边跨,我们就要看他的大运是几岁运,如果是昨天立秋,今天出生的人,他是几岁运?他是逆推运必然是1虚岁岁运,如果求测者出生的时辰是在午月

sdut 2841 Bit Problem (水题)

题目 贴这个题是因为看题解有更简单的方法, 我做的时候是直接算的, 也很简单. 贴一下题解吧: 如果一个整数不等于 0,那么该整数的二进制表示中至少有一位是 1. 这个题结果可以直接输出 x - (x&(x-1)); 因为x-1 之后二进制下,就是最右边的1变成了0, 最右边的1的 右边所有的0变成了1, 不影响最左边. 我的代码: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4

sdut 2413:n a^o7 !(第三届山东省省赛原题,水题,字符串处理)

n a^o7 ! Time Limit: 1000MS Memory limit: 65536K 题目描述 All brave and intelligent fighters, next you will step into a distinctive battleground which is full of sweet and happiness. If you want to win the battle, you must do warm-up according to my inst