zoukankan      html  css  js  c++  java
  • 排队打饭

    描述
    一天中午,有 N 个学生来到食堂买饭,他们需要排成了一个一字队伍并按顺序打饭,现在已经知道了每个人买饭的时间, 现在食堂的管理员希望知道他们按照怎样的顺序买饭能够使得所有人等待时间的总和最小。(每个人等待的时间 = 排在他前面的人的打饭时间和 + 自己打饭的时间)
    输入
    一个整数 T(T≤30)表示数据组数,每组数据包括两行,第一行一个整数 N 表示人数,第二行 N 个整数表示每个人买饭所需要的时间,所有整数均不超过 100。
    输出
    每组数据输出一行,包括一个整数,表示所有人等待时间总和的最小值。
    样例输入
    2
    5
    1 2 3 4 5
    5
    45 10 48 37 9
    样例输出
    35
    334

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 int main(){
     5     int T;
     6     int n;
     7     int time;
     8     int i;
     9     int flag[101];
    10     int sum;
    11     int temp;
    12     int middle;
    13     
    14     scanf("%d",&T);
    15     
    16     while(T--){
    17         scanf("%d",&n);
    18         
    19         memset(flag,0,sizeof(int)*101);
    20         for(i=0;i<n;i++){
    21             scanf("%d",&time);
    22             flag[time]++;
    23         }
    24         
    25         sum=0;
    26         middle=0;
    27         for(i=0;i<=100;i++){
    28             if(flag[i]!=0){
    29                 temp=flag[i];
    30                 
    31                 while(temp--){
    32                     middle+=i;
    33                     sum+=middle;
    34                 }
    35                 
    36             }
    37         }
    38         printf("%d
    ",sum);
    39     }
    40     return 0;
    41 }
     
  • 相关阅读:
    Educational Codeforces Round 75 (Rated for Div. 2)
    Codeforces Round #596 (Div. 2, based on Technocup 2020 Elimination Round 2)
    Codeforces Round #594 (Div. 2)
    Codeforces Round #597 (Div. 2)
    Codeforces Round #599 (Div. 2)
    数学笔记
    模板
    模板
    win7如何更改语言教程
    cmd-net命令详解
  • 原文地址:https://www.cnblogs.com/zqxLonely/p/4101374.html
Copyright © 2011-2022 走看看