题目名称:接水问题

题目来源

[洛谷P1190] (https://www.luogu.org/problemnew/show/P1190)​

题目描述

学校里有一个水房,水房里一共有\(m\)个龙头供学生们打开水,每个水龙头每秒的供水量相等,均为\(1\)

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

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

基本思路

正常人一看到题目,就会情不自禁的喊出:这不是傻*题吗???

然额,我却与很多小伙伴犯了同样的错误

题目中的话一定要仔细读,因为我就是没有看见“他们的初始接水顺序已经确定”这句活,导致考虑了半天的贪心思想,结果发现这是一道彻彻底底的模拟大水题

多说无益,思路就用一句话描述吧:模拟\(1-m\)这\(m\)个水龙头,每次把所对应的接水时间减一来模拟接水的过程,同时需要的时间加一(剩下的都在代码里啦!

代码实现

#include<cstdio>
#include<iostream> using namespace std; int m,n;
int w[10010];//w[i]表示编号为i的同学所需的接水时间
int mi;//表示所需时间(分钟) int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i) scanf("%d",&w[i]);
int now=m+1;//now表示若当前同学接完了水,下一个接水的同学的编号
while(now<=m+n)//now的值最大为m+n
{
for(int i=1;i<=m;++i)
{
w[i]--;
if(w[i]==0) {w[i]=w[now]; now++;}
}
mi++;
}
printf("%d",mi);
return 0;//最后别忘记加上"return 0;"
}

总结

对于这道题,我只想说,一定要审好题,不要漏掉题目中的关键信息,我已经因为这一点错过好多次了,希望能够早日养成仔细审题的好习惯!

还有,本蒟蒻从今往后就要下定决心学习MD啦,这是我第一篇用MD写的博客呦qwq

洛谷P1190 接水问题的更多相关文章

  1. 洛谷——P1190 接水问题

    P1190 接水问题 题目描述 学校里有一个水房,水房里一共装有 m 个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为 1. 现在有 n 名同学准备接水,他们的初始接水顺序已经确定.将这些同学 ...

  2. 洛谷 P1190 接水问题 题解

    P1190 接水问题 题目描述 学校里有一个水房,水房里一共装有 \(m\) 个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为1. 现在有 \(n\) 名同学准备接水,他们的初始接水顺序已经确 ...

  3. 洛谷—— P1190 接水问题

    https://www.luogu.org/problem/show?pid=1190#sub 题目描述 学校里有一个水房,水房里一共装有 m 个龙头可供同学们打开水,每个龙头每秒钟的 供水量相等,均 ...

  4. 【洛谷p1190】接水问题

    接水问题[题目链接] 咱也不知道为啥咱就是想写博客emmm 尽管这个题是2010年的普及组但是我太菜了并不会写emm 其实感觉这道题是纯纯正正的大模拟: 算法标签中的贪心是没有意义的啊?? SOLUT ...

  5. [洛谷U22157]刷水题(数位dp)(hash)

    题目背景 做正经题是不可能做正经题的,这辈子都不可能做正经题的,毒瘤题又不会做毒瘤题,就是水题这种东西,才维持了蒟蒻的信心: 题目描述 这里有N+1 道水题,编号分别为0 ~N+1 ,每道水题都有它自 ...

  6. AC日记——铺地毯 洛谷 P1003(水水水水水~)

    题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...

  7. [洛谷P4626]一道水题 II

    题目大意:求$lcm(1,2,3,\cdots,n)\pmod{100000007}$,$n\leqslant10^8$ 题解:先线性筛出质数,然后求每个质数最多出现的次数,可以用$\log_in$来 ...

  8. Mychael原创题 洛谷T23923 Mychaelの水题 【题解】

    原题链接 题目大意: 有来自三个地区的人各a,b,c位,他们排成了一排.请问有多少种不同类型的排法,使得相邻的人都来自不同的地区 \(a,b,c<=200\) 答案取模 题解 弱弱的标程解法 设 ...

  9. 洛谷P1540 机器翻译 水题 模拟

    注意一下细节,尤其是更新minv时不要更新错. Code: #include<vector> #include<iostream> #include<cstdio> ...

随机推荐

  1. 6.纯css绘制叮当猫

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  2. win 与Linux 的hosts文件地址

    win(phpstudy):C:/Windows/System32/drivers/etc/hosts linux:  /etc/hosts

  3. yum 报错2

    Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again 打开/etc/yu ...

  4. python打印实心等边三角形和空心等边三角形

    #1 打印实心等边三角形 n = 5 for i in range(1, n+1): # 控制三角形的高,也就是层数 for k in range(2*(n-i)): # 控制每层第一个*的空格,从最 ...

  5. python + excel 使用

    为了提高工作效率(偷懒),用python去解决. 工作需要,需要将excel文件转化为csv文件,要是手工的一个个去转换,每个sheet页不但有几十个字段,中间还夹杂着空格,然后按顺序转换成csv文件 ...

  6. CenterNet

    Objects as Points anchor-free系列的目标检测算法,只检测目标中心位置,无需采用NMS 1.主干网络 采用Hourglass Networks [1](还有resnet18 ...

  7. 一、Ubuntu16.04 安装

    第一步:系统安装 https://yuedu.baidu.com/ebook/c44183ed4128915f804d2b160b4e767f5acf80fb?pn=1&rf=https%3A ...

  8. 第04课:GDB常用命令详解(上)

    本课的核心内容如下: run命令 continue命令 break命令 backtrace与frame命令 info break.enable.disable和delete命令 list命令 prin ...

  9. spring AspectJ的Execution表达式(转载)

    原文:http://blog.csdn.net/peng658890/article/details/7223046 在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需 ...

  10. Linux系统中的硬件问题如何排查?(2)

    Linux系统中的硬件问题如何排查?(2) 2013-03-27 10:32 核子可乐译 51CTO.com 字号:T | T 在Linux系统中,对于硬件故障问题的排查可能是计算机管理领域最棘手的工 ...