这道题其实挺简单的,不知道为什么设置成中等难度
//贪心规则:每次选最高的奶牛就是了 #include<bits/stdc++.h> using namespace std; int N,B; long A[20005]; int i; long sum; int cnt;//用于计数 int main() { scanf("%d %d",&N,&B); getchar(); for(i = 1; i <= N; i++) { scanf("%d",&A[i]); } sort(A+1,A+1+N); //默认升序排序 for(i = N; i >= 1; i--) //从最高的奶牛开始选取 { sum += A[i]; cnt++; if(sum >= B) //符合题意就退出循环,不用再加了 { break; } } cout << cnt; }
0.0分
1 人评分