C++:书架

描述

John最近买了一个书架用来存放奶牛养殖书籍,但书架很快被存满了,只剩最顶层有空余。

John共有N头奶牛(1 ≤ N ≤ 20,000),每头奶牛有自己的高度Hi(1 ≤ Hi ≤ 10,000),N头奶牛的总高度为S。书架高度为B(1 ≤ B ≤ S < 2,000,000,007).

为了到达书架顶层,奶牛可以踩着其他奶牛的背,像叠罗汉一样,直到他们的总高度不低于书架高度。当然若奶牛越多则危险性越大。为了帮助John到达书架顶层,找出使用奶牛数目最少的解决方案吧。

输入

第1行:空格隔开的整数N和B

第2~N+1行:第i+1行为整数Hi

输出

能达到书架高度所使用奶牛的最少数目

样例输入

6 40

6

18

11

cpp 复制代码
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
    int N,B;
    cin >> N>>B;
    vector<int>cowh(N);
    int heightsum = 0,cownum=0;
    for (int i = 0; i <N; i++)
    {
        cin >> cowh[i];
    }
    sort(cowh.begin(), cowh.end());
    for (int j = N-1; j >=0; j--)
    {
        heightsum += cowh[j];
        cownum++;
        if (heightsum >= B)
        {
            cout << cownum << endl;
            break;
        }
    }
    return 0;
}

13

19

11

【样例输出】

3

相关推荐
轻微的风格艾丝凡3 分钟前
嵌入式定时器计时技巧:用有符号数省略溢出判断的底层逻辑与实践
数据库·算法·dsp开发·嵌入式软件
No0d1es9 分钟前
2025年12月 GESP CCF编程能力等级认证C++四级真题
算法·青少年编程·等级考试·gesp·ccf
汉克老师11 分钟前
GESP2025年12月认证C++八级真题与解析(单选题10-12)
c++·递归··gesp八级·gesp8级
lly20240618 分钟前
jEasyUI 设置排序指南
开发语言
CodeByV27 分钟前
【算法题】快排
算法
一起努力啊~29 分钟前
算法刷题--长度最小的子数组
开发语言·数据结构·算法·leetcode
rchmin33 分钟前
限流算法:令牌桶与漏桶详解
算法·限流
leoufung41 分钟前
LeetCode 221:Maximal Square 动态规划详解
算法·leetcode·动态规划
黑符石43 分钟前
【论文研读】Madgwick 姿态滤波算法报告总结
人工智能·算法·机器学习·imu·惯性动捕·madgwick·姿态滤波
源代码•宸1 小时前
Leetcode—39. 组合总和【中等】
经验分享·算法·leetcode·golang·sort·slices