排序刷题5

 题目来源:[USACO07DEC] Bookshelf B - 洛谷

解题思路:这道题使用排序的思想就可以解决,这道题的目标是奶牛在能够够到书架顶的前提下,使塔中奶牛的数目尽可能的少。可以用STL中的sort函数对奶牛进行排序(注:从高到低排序,可以更好的减少奶牛数目),当满足够到书架顶B时,输出当前的奶牛数目。

#include
#include

using namespace std;
#define maxn 20010
int n, a[maxn], b;
int main()
{
	cin >> n >> b;
	int s=0,count = 0;
	for (int i = 0; i < n; i++)
	{
		cin >> a[i];

	}
	// 使用greater()来指定从高到低的排序顺序
	sort(a, a + n, greater());
	for (int i = 0; i < n; i++)
	{
		s += a[i];
		count++;
		if (s >= b){

			break;
		}
		
	}
	cout << count << endl;
	return 0;
}

你可能感兴趣的:(排序,算法,数据结构,c++,排序算法)