首页 > 代码库 > poj-3627

poj-3627

题意:

输入一个N和B N为牛的个数,B为高度,然后输入N头牛,为最少多少头牛加起来高度大于B

解题思路:

排序,贪心

具体代码:

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int main()
{
    int n,b;
    int num[20005];
    int sum=0;
    cin>>n>>b;
    for(int i=0;i<n;i++)
        cin>>num[i];
    sort(num,num+n);
    int xx=n;
    while(sum<b)
    {   
        xx--;
        sum+=num[xx];
    }
    cout<<n-xx<<endl;
   // system("pause");
    return 0;
}
View Code