zoukankan      html  css  js  c++  java
  • HDU 2078 复习时间

    传送门:

    http://acm.hdu.edu.cn/showproblem.php?pid=2078

    复习时间

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 10525    Accepted Submission(s): 7674


    Problem Description
    为了能过个好年,xhd开始复习了,于是每天晚上背着书往教室跑。xhd复习有个习惯,在复习完一门课后,他总是挑一门更简单的课进行复习,而他复习这门课的效率为两门课的难度差的平方,而复习第一门课的效率为100和这门课的难度差的平方。xhd这学期选了n门课,但是一晚上他最多只能复习m门课,请问他一晚上复习的最高效率值是多少?
     
    Input
    输入数据的第一行是一个数据T,表示有T组数据。
    每组数据的第一行是两个整数n(1 <= n <= 40),m(1 <= m <= n)。
    接着有n行,每行有一个正整数a(1 <= a <= 100),表示这门课的难度值。
     
    Output
    对于每组输入数据,输出一个整数,表示最高效率值。
     
    Sample Input
    2 2 2 52 25 12 5 89 64 6 43 56 72 92 23 20 22 37 31
     
    Sample Output
    5625 8836
     
    Author
    xhd
     
    Source
     
    分析:
    将课程按照难度排序
    在这一天内
    第一门先选择难度最小的
    然后再选择难度最大的
    然后再选择难度第二小的
    然后选择难度第二大的
    直到选满m门
    原因:保证每次的难度差的最大的
    贪心
    code:
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    #define max_v 45
    int main()
    {
        int a[max_v];
        int t;
        scanf("%d",&t);
        while(t--)
        {
            int n,m;
            scanf("%d %d",&n,&m);
            for(int i=0; i<n; i++)
            {
                scanf("%d",&a[i]);
            }
            sort(a,a+n);
            int i=0,j=n-1;
            int c=1;
            int cs=a[0];
            int maxvalue=100-cs;
            int cv;
            while(1)
            {
                c++;
                if(c>m)
                    break;
                if(c%2==0)
                {
                    cv=a[j];
                    if(cv-cs>maxvalue)
                    {
                        maxvalue=cv-cs;
                    }
                    cs=cv;
                }else
                {
                    cv=a[i];
                    if(cv-cs>maxvalue)
                    {
                        maxvalue=cv-cs;
                    }
                    cs=cv;
                }
                i++;
                j--;
            }
            printf("%d
    ",maxvalue*maxvalue);
        }
        return 0;
    }
  • 相关阅读:
    link和@import的区别
    行内元素、块状元素和行内块元素
    content-box与border-box区别
    实现浏览器内多个标签页之间的通信
    cookie、 sessionStorage 、localStorage之间的区别和使用
    让浏览器识别HTML5规范中的新标签
    HTML5新增及移除的元素
    摇一摇
    WebViewJavascriptBridge
    使用TFHpple解析html
  • 原文地址:https://www.cnblogs.com/yinbiao/p/9307311.html
Copyright © 2011-2022 走看看