洛谷P2676 超级书架 题解

题目传送门

题目一看就是贪心。C++福利来了:sort。

基本思路就是:要使奶牛最少那么肯定高的奶牛先啦。

直接排序一遍(从高到矮)然后while,搞定!

#include<bits/stdc++.h>
#define ll long long 
using namespace std;
ll N,B,H[20010];
bool cmp(int x,int y){return x>y;}
int main(){
    scanf("%lld%lld",&N,&B);
    for(int i=1;i<=N;i++) scanf("%lld",&H[i]);
    sort(H+1,H+1+N,cmp);
    int ans=1,sum=H[1];
    while(sum<B){
        ans++;
        sum+=H[ans]; 
    }
    printf("%lld
",ans);
    return 0;
}
原文地址:https://www.cnblogs.com/yzx1798106406/p/9038062.html