zoukankan      html  css  js  c++  java
  • 排队打饭 sdut 2443【最简单的贪心法应用举例】

    排队打饭
    Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

    题目描述

    题目链接:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2443

    一天中午,有N个学生来到食堂买饭,他们需要排成了一个一字队伍并按顺序打饭,现在已经知道了每个人买饭的时间,现在食堂的管理员希望知道他们按照怎样的顺序买饭能够使得所有人等待的时间总和最小(每个人等待的时间 = 排在他前面的人的打饭时间和+自己打饭的时间)。

    输入

     输入的第一行包含一个整数T(T≤30)表示数据组数,每组数据包括两行,第一行为一个整数N表示人数,第二行为N个整数表示每个人买饭所需要的时间,所有整数均不超过100。

     

    输出

     每组数据输出一行,包括一个整数,表示所有人等待时间总和的最小值。

     

    示例输入

    2
    5
    1 2 3 4 5
    5
    45 10 48 37 9
    

    示例输出

    35
    334

    提示

    代码:

     1 #include<iostream>
     2 #include<stdlib.h>
     3 #include<algorithm>
     4 using namespace std;
     5 int cmp(const int a,const int b)
     6 {
     7     if(a>b)return 1;
     8     else return 0;
     9 }
    10 int main()
    11 {
    12     int zong ;
    13     cin>>zong;
    14     while(zong--)
    15     {
    16         int sum,f[105];
    17         cin>>sum;
    18         int i,j;
    19         for(i=0;i<=sum-1;i++)
    20             cin>>f[i];
    21         sort(f,f+sum,cmp);
    22         int n=0;
    23         for(i=0;i<=sum-1;i++)
    24         {
    25             for(j=i;j<=sum-1;j++)
    26                 n+=f[j];
    27         }
    28         cout<<n<<endl;
    29     }
    30     return 0;
    31 }
    View Code

    用sort函数排序事半功倍。

  • 相关阅读:
    iis 500
    无线密码获取
    数据库创建
    系统基础配置指令
    手把手教你用ngrx管理Angular状态
    vue中v-cloak解决刷新或者加载出现闪烁(显示变量)
    HBuilder如何与真机连接
    01 spring boot源码阅读参考
    01 git学习笔记参考
    OAuth2授权基础知识
  • 原文地址:https://www.cnblogs.com/kuangdaoyizhimei/p/3390921.html
Copyright © 2011-2022 走看看