书架 John最近买了一个书架用来存放奶牛养殖书籍,但书架很快被存满了,只剩最顶层有空余。 John共有N头奶牛(1 ≤ N ≤ 20,000),每头奶牛有自己的高度Hi(1 ≤ Hi ≤ 10,000),N头奶牛的总高度为S。书架高度为B(1 ≤ B ≤ S < 2,000,000,007). 为了到达书架顶层,奶牛可以踩着其他奶牛的背,像叠罗汉一样,直到他们的总高度不低于书架高度。当然若奶牛越多则危险性越大。为了帮助John到达书架顶层,找出使用奶牛数目最少的解决方案吧。 时间限制:10000 内存限制:65536 输入 第1行:空格隔开的整数N和B 第2~N+1行:第i+1行为整数Hi 输出 能达到书架高度所使用奶牛的最少数目 样例输入 6 40 6 18 11 13 19 11 样例输出 3
正确答案:参考程序(C++):书架。N头奶牛高度,需总高≥B的最少头数。取最高的一批,从高到低排序累加,达到B即停止。样例6,18,11,13,19,11,B=40:19+18+13=50→3头。核心:排序取最高的最少头。
试卷来源:202112 青少年等级考试C/C++真题五级