666
2026-09-12 16:40:52
发布于:广东
9阅读
0回复
0点赞
题目描述
John 最近买了一个书架用来存放奶牛养殖书籍,但书架很快被存满了,只剩下顶层有空余。
John 共有 n 头奶牛(1≤n≤20000),每头奶牛有自己的高度 hi (0<hi≤10
5
),n 头奶牛的总高度为 s。书架高度为 b (1≤b≤s)。
为了到达书架顶层,奶牛可以踩着其他奶牛的背,像叠罗汉一样,直到他们的总高度不低于书架高度。当然如果奶牛越多则危险性越大。为了帮助 John 到达书架顶层,找出解决方案使使用的奶牛数目最少,输出最少的奶牛数目。
输入格式
共两行,第一行为 n,b。
第二行有 n 个数,为 n 头奶牛的身高。
输出格式
输出最少的奶牛数目。
输入输出样例
输入#1
复制
4 40
18 11 13 19
输出#1
复制
3
全部评论 1
#include<iostream>
#include<algorithm>//sort要用
using namespace std;
const int maxn=2e4+5;
int n,k,a[maxn];
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++)cin>>a[i];
sort(a+1,a+n+1);//排序,让奶牛数量经量少
int ans=0,l=n;//拟for
while(k>0){
k-=a[l];
l--;//下一个第二高的值
ans++;//奶牛数量++
}
cout<<ans;
return 0;
}2026-09-12 来自 广东
0

有帮助,赞一个