HDU 2078复习时间
2017-04-09 17:42
190 查看
问题描述
为了能过个好年,xhd开始复习了,于是每天晚上背着书往教室跑。xhd复习有个习惯,在复习完一门课后,他总是挑一门更简单的课进行复习,而他复习这门课的效率为两门课的难度差的平方,而复习第一门课的效率为100和这门课的难度差的平方。xhd这学期选了n门课,但是一晚上他最多只能复习m门课,请问他一晚上复习的最高效率值是多少?输入
输入数据的第一行是一个数据T,表示有T组数据。每组数据的第一行是两个整数n(1 <= n <= 40),m(1 <= m <= n)。
接着有n行,每行有一个正整数a(1 <= a <= 100),表示这门课的难度值。
输出
对于每组输入数据,输出一个整数,表示最高效率值。样例输入
22 2
52
25
12 5
89
64
6
43
56
72
92
23
20
22
37
31
样例输出
56258836
问题分析
这是一题求最大效率的问题,那么我们用贪心算法是很容易的,由题意我们知道每当他复习完一门课时我们需要找一个更简单课的来复习,所以,我们根据贪心的规则来说我们只需要第一个就求出最大效率就行,如果我们第一个求出来的不是最大的效率,那么在复习后面课时我们的效率将会不断递减,从而得出的效率就不是最高的效率了。代码
#include<stdio.h> int main() { int t,n,m,a[40],i,j,x,c; scanf("%d",&t); for (x=0;x<t;x++) { scanf("%d %d",&n,&m); for (i=0;i<n;i++) scanf("%d",&a[i]); for (i=0;i<n-1;i++) for (j=i+1;j<n;j++) if (a[i]>a[j]) { c=a[i];a[i]=a[j];a[j]=c; } printf("%d\n",(100-a[0])*(100-a[0])); } return 0; }
测试结果
相关文章推荐
- HDU--杭电--2078--复习时间--水题
- hdu 2078 复习时间
- HDOJ(HDU) 2078 复习时间
- HDOJ(HDU) 2078 复习时间
- hdu 2078 复习时间 (水。。)
- HDU 2078 复习时间
- HDU 2078 复习时间
- hdu 2078 复习时间
- hdu 2078 复习时间
- hdu 2078 复习时间
- hdu-2078-复习时间
- hdu 2078 复习时间
- hdu---2078复习时间
- HDU-2078 复习时间 (水)
- hdu 2078 复习时间
- HDU—— 2078 复习时间
- hdu 2078 复习时间
- hdu 2078 复习时间 (水。。)
- hdu 2078 复习时间
- HDU ACM 11 2078 复习时间