zoukankan      html  css  js  c++  java
  • 5J

    为了能过个好年,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 

    // 贪心算法
    // 以后直接sort完事
     1 #include<stdio.h>
     2 
     3 void shell_sort(int a[], int len, int flag)
     4 {
     5     int i, j, k, gap, t;
     6     for(gap=len/2; gap>0; gap/=2)
     7         for(i=gap; i<len; i++)
     8             for(j=i;j-gap>=0&&a[j]<a[j-gap];j-=gap)
     9             { t=a[j-gap]; a[j-gap]=a[j]; a[j]=t; }
    10     if(flag)
    11         for(i=0;i<len/2;i++)
    12         { t=a[i]; a[i]=a[len-1-i]; a[len-1-i]=t; }
    13 }
    14 
    15 int main()
    16 {
    17     int t, n, m, a[100], i;
    18     scanf("%d", &t);
    19     while(t--)
    20     {
    21         scanf("%d %d",&n, &m);
    22         for(i=0;i<n;i++)
    23             scanf("%d", &a[i]);
    24         shell_sort(a,n,0);
    25         printf("%d
    ", (100-a[0])*(100-a[0]));
    26     }
    27     return 0;
    28 }
    View Code
  • 相关阅读:
    BF算法和KMP算法
    Python课程笔记 (五)
    0268. Missing Number (E)
    0009. Palindrome Number (E)
    0008. String to Integer (atoi) (M)
    0213. House Robber II (M)
    0198. House Robber (E)
    0187. Repeated DNA Sequences (M)
    0007. Reverse Integer (E)
    0006. ZigZag Conversion (M)
  • 原文地址:https://www.cnblogs.com/goldenretriever/p/10355820.html
Copyright © 2011-2022 走看看