zoukankan      html  css  js  c++  java
  • 蓝桥杯 接水问题 模拟

    问题描述
      学校里有一个水房,水房里一共装有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
    样例输入
    8 4
    23 71 87 32 70 93 80 76
    样例输出
    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。
    乖乖按照题意过程模拟。
    参考自https://blog.csdn.net/qq_44410340/article/details/100901135
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int a[10010], b[110]; //a数组存每个人接水量,b数组存每个龙头下面要接的水量
     4 int main() {
     5     int n, m; 
     6     cin >> n >> m;
     7     for (int i = 1; i <= n; i++) { //输入1~n个同学要接的水量 
     8         cin >> a[i];
     9     }
    10     for (int i = 1; i <= m; i++) { //将前m个人的水壶分别放在对应的龙头下面 
    11         b[i] = a[i]; 
    12     }
    13     int t = 0; //总时间 
    14     for (int i = m + 1; i <= n ; i++) { //遍历剩下的需要接水的人 
    15         sort(b + 1, b + m + 1); //将当前所有水龙头下需要接水的水量从小到大排序 
    16         int e = b[1]; //b[1]是最小接水量 
    17         for (int j = 1; j <= m ; j++) { //将当前所有水龙头下要接的水量都减去b[1] 
    18             b[j] -= e; 
    19         }
    20         t += e; //加上所需时间 
    21         b[1] = a[i]; //将下一个排队接水的人加入进来,继续放水 
    22     }
    23     sort(b + 1, b + m + 1);
    24     t += b[m];
    25     cout << t << endl;
    26     return 0;
    27 }
  • 相关阅读:
    微软职位内部推荐-SOFTWARE ENGINEER II
    微软职位内部推荐-SOFTWARE ENGINEER II
    微软职位内部推荐-SDEII for Windows Phone Apps
    微软职位内部推荐-SDEII for Windows Phone Apps
    微软职位内部推荐-Software Engineer II-SDP
    微软职位内部推荐-SDE II
    微软职位内部推荐-Senior Software Engineer-SDP
    微软职位内部推荐-Senior Software Engineer
    微软职位内部推荐-Software Engineer II-Office Incubation
    微软职位内部推荐-Senior Software Engineer-Office Incubation
  • 原文地址:https://www.cnblogs.com/fx1998/p/12696008.html
Copyright © 2011-2022 走看看