贪心,咋看题目以为是背包,但是由于体积是相同的,那么溶度小的开始选择就可以得到最优解了!!!! #include <iostream> #include <algorithm> using namespace std; int a[200]; int main() { int n, v, w, T; scanf("%d", &T); while(T--) { scanf("%d %d %d", &n, &v, &w); for(int i = 1; i <= n; i++) scanf("%d", &a[i]); sort(a+1, a+1+n); double res = 1, temp; int sum = 0; for(int i = 1; i <= n; i++) { temp = (double)(res*sum+a[i]*v) / (sum + v); if(temp > w) break; res = temp; sum += v; } if(sum == 0) res = 0.0; printf("%d %.2lf/n", sum, res/100); } return 0; }