地址:http://acm.hdu.edu.cn/showproblem.php?pid=2570
题意:中文。
mark:很水的题。体积V都一样,排序后贪心就可以了。各种wa,主要还是浓度计算那儿装逼不想用实数,就用整数绕过去,结果各种想不清楚。
代码:
1 # include <stdio.h> 2 # include <stdlib.h> 3 4 5 int p[110] ; 6 7 int cmp(const void *a, const void *b) 8 { 9 return *(int*)a - *(int*) b ; 10 } 11 12 13 int main () 14 { 15 int T, n, v, w, i ; 16 int cur_v, cur_p, max_v ; 17 double fp ; 18 scanf ("%d", &T) ; 19 while (T--) 20 { 21 scanf ("%d%d%d", &n, &v, &w) ; 22 for (i = 0 ; i < n ; i++) 23 scanf ("%d", &p[i]) ; 24 qsort (p, n, 4, cmp) ; 25 cur_v = cur_p = 0 ; 26 max_v = 0, fp = 0 ; 27 for (i = 0 ; i < n ; i++) 28 { 29 cur_v += v * 100 ; 30 cur_p += p[i] *v ; 31 if (cur_p * 100 <= w * cur_v) 32 max_v = cur_v/100, fp = cur_p * 1.0 / cur_v ; 33 } 34 printf ("%d %.2lf\n", max_v, fp) ; 35 } 36 return 0 ; 37 }