zoukankan      html  css  js  c++  java
  • 桂电第一次程序设计 C STL 排序

    Problem 1197 # 共享厕所
    ediszhao添加于2017-12-22 15:00:56
    时间限制 : 1000MS 内存限制 : 65536KB
    ×提示 : 你已解决此题目。
    问题描述
    马路边有一个共享厕所,厕所里一共装有m 个马桶可供人们拉尿,每个人每秒钟的拉尿量相等,均为1。 现在有n 个人准备拉尿,他们的初始拉尿顺序已经确定。将这些人按拉尿顺序从1 到n编号,i 号同学的拉尿量为ai。拉尿开始时,1 到m 号人各占一个马桶,并同时开始拉尿。当其中某个人j 完成其拉尿量要求aj 后,下一名排队等候拉尿的人x马上接替j人的位置开始拉尿。这个换人的过程是瞬间完成的。即第j人第k秒结束时完成拉尿,则第x人第k+1 秒立刻开始拉尿。若当前拉尿人数n’不足m, 则只有n’个马桶供使用,其它m-n’个马桶关闭。 现在给出n 名人的拉尿量,按照上述拉尿规则,问所有人都拉完尿需要多少秒。

    输入
    第1 行是n 和m,分别表示拉尿人数和马桶个数。

    第2 行n 个整数a1、a2、……、an,ai 表示i 号同 学的拉尿量。

    输出
    输出结果表示拉尿所需的总时间,结果只占一行。

    输入范例
    5 3

    4 4 1 2 1

    8 4

    23 71 87 32 70 93 80 76

    输出范例
    4

    163

     1 //写这一题时,原考虑的选择先进先出的队列容器,按照题目模拟一下;
     2 // 当时不会队列;
     3 //思维的转变,先进先出,通过边输入边处理也能很好的解决; 
     4 #include<iostream>
     5 #include<cstdio>
     6 #include<algorithm>
     7 using namespace std ;
     8 int main ()
     9 {
    10     int n,m,a[10000];
    11     while(cin>>n>>m)
    12     {
    13         if(m>=n)
    14         {
    15             for(int i=0; i<n; i++)
    16                 cin>>a[i];
    17             sort(a,a+n);
    18             cout<<a[n]<<endl;
    19         }
    20 
    21         else
    22         {
    23             for(int i=0; i<m; i++)
    24                 cin>>a[i];
    25             sort(a,a+m);
    26             for(int i=0; i<n-m; i++)
    27             {
    28                 int t; cin>>t;
    29                 a[0]+=t;
    30                 sort(a,a+m);
    31             }
    32             cout<<a[m-1]<<endl;
    33         }
    34 
    35     }
    36     return 0;
    37 }
  • 相关阅读:
    jquery笔记
    css选择器
    Linq 巧用 Max,Sum
    Linq Aggregate
    Linq 对象的比较 Contains,Max
    Linq SelectMany 交叉连接
    JQ 标签相关知识
    C# HttpClient设置cookies的两种办法 (转发)
    使用 HttpClient 请求 Web Api
    MySQL 避免重复数据的批量插入与批量更新
  • 原文地址:https://www.cnblogs.com/Yokel062/p/10133650.html
Copyright © 2011-2022 走看看