【题解】Luogu p2676 【超级书架】

這題也是蠻容易的,很快就能想到貪心方法。

就是讓底部的牛盡量的高,這樣總的個數就是最小的。

從大到小排序,一遍累計就可AC。

bool cmp(int a,int b){
    return a > b ? true : false;
}

int main(){
    std::vector<int> l;
    int n,target;
    scanf("%d %d",&n,&target);

    int gg;
    for(int i = 0;i < n;i++){
        scanf("%d",&gg);
        l.push_back(gg);
    }

    sort(l.begin(),l.end(),cmp);

    int sum = 0;
    for(int i = 0;i < n;i++){
        sum += l[i];

        if(sum >= target){
            printf("%d",i + 1);
            break;
        }
    }

    return 0;
}