排序——[USACO07DEC]Bookshelf B

题目描述

Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了。现在,只有书架的顶上还留有一点空间。

所有N(1 <= N <= 20,000)头奶牛都有一个确定的身高H_i(1 <= H_i <= 10,000)。设所有奶牛身高的和为S。书架的高度为B,并且保证 1 <= B <= S < 2,000,000,007。

为了够到比最高的那头奶牛还要高的书架顶,奶牛们不得不像演杂技一般,一头站在另一头的背上,叠成一座“奶牛塔”。当然,这个塔的高度,就是塔中所有奶牛的身高之和。为了往书架顶上放东西,所有奶牛的身高和必须不小于书架的高度。

显然,塔中的奶牛数目越多,整座塔就越不稳定,于是奶牛们希望在能够到书架顶的前提下,让塔中奶牛的数目尽量少。 现在,奶牛们找到了你,希望你帮她们计算这个最小的数目。

输入格式

第1行: 2个用空格隔开的整数:N 和 B * 第2…N+1行: 第i+1行是1个整数:H_i

输出格式

第1行: 输出1个整数,即最少要多少头奶牛叠成塔,才能够到书架顶部

输入输出样例

输入样例

6 40
6
18
11
13
19
11

输出样例

3

说明/提示

输入说明:
一共有6头奶牛,书架的高度为40,奶牛们的身高在6…19之间。

输出说明:
一种只用3头奶牛就达到高度40的方法:18+11+13。当然还有其他方法,在此不一一列出了。

方法一:

sort() 排序

#include<bits/stdc++.h>
using namespace std;
int a[20005];int main()
{int n,b;cin>>n>>b;for(int i=0;i<n;i++){cin>>a[i];}sort(a,a+n);int cnt=0;int sum=0;for(int i=n-1;i>=0;i--){sum+=a[i];cnt++;if(sum>b){break;}}cout<<cnt<<endl;return 0;
}

方法二

优先队列

#include<bits/stdc++.h>
using namespace std;
priority_queue<int> q;int main()
{int n,b,x;cin>>n>>b;for(int i=0;i<n;i++){cin>>x;q.push(x);}int cnt=0;int sum=0;while(!q.empty()){cnt++;sum+=q.top();q.pop();if(sum>b){break;}}cout<<cnt<<endl;return 0;
}

排序——[USACO07DEC]Bookshelf B相关推荐

  1. P2676 [USACO07DEC]Bookshelf B(随缘学习)

    P2676 [USACO07DEC]Bookshelf B(随缘学习) 前言 # 一.题目 **题目描述** Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是 ...

  2. 【快速排序】—— [USACO07DEC]Bookshelf B

    快速排序方法 背景 快速排序(Quicksort)是对冒泡排序的一种改进,它由C. A. R. Hoare在1960年提出,其基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有 ...

  3. (Java) [USACO07DEC]Bookshelf B

    [USACO07DEC]Bookshelf B 题目描述 Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了.现在,只有书架的顶上 ...

  4. P2676 [USACO07DEC]Bookshelf B

    题目描述 Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了.现在,只有书架的顶上还留有一点空间. 所有 N(1≤N≤20,000 ...

  5. 【洛谷】P2676 [USACO07DEC]Bookshelf B (c++)

    题目描述 Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了.现在,只有书架的顶上还留有一点空间. 所有 N(1≤N≤20,000 ...

  6. 1177: 按要求排序(指针专题)_L2算法基础第10课 排序中

    L2-算法基础-第10课 排序中 排序 归并排序 归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法.该算法是采用分治法(Divide and Conquer)的一个非常典型的应用 ...

  7. C++的sort函数如何实现从大到小排序

    C++的sort函数如何实现从大到小排序 一.sort的基本用法 1. 所在的头文件 2. 包含的参数 3. 时间复杂度 二.具体示例 [USACO07DEC\]Bookshelf B 题目描述 输入 ...

  8. 【OJ】洛谷排序题单题解锦集

    题单简介 题目解析 P1271[深基9.例1]选举学生会 P1177[模板]快速排序 P1923[深基9.例4]求第 k 小的数 P1059 明明的随机数 P1093 奖学金 P1781 宇宙总统 P ...

  9. 【算法1-2】排序(今天刷洛谷了嘛)

    P1271 [深基9.例1]选举学生会 #include<iostream> #include<algorithm> #include<cstdio> #inclu ...

最新文章

  1. python之 数据类型判定与类型转换
  2. (传送门) Ubuntu随身系统
  3. win7自带远程应用
  4. Java Spring MVC model学习
  5. python常用字符串处理函数_Python第10课:常用的字符串处理函数
  6. 基于java SSM图书管理系统简单版设计和实现
  7. 希望直接访问系统内某个链接,跳过登录验证等过程
  8. 前四史 —— 《后汉书》
  9. FFmpeg源代码简单分析:内存的分配和释放(av_malloc()、av_free()等)
  10. mysql字符集导出_关于mysql字符集及导入导出
  11. Pwn入门之ELF文件
  12. android gps 经纬度转换,AndroidGPS获取当前经纬度坐标
  13. MAC版SecureCRT+SecureFX 安装说明
  14. 乐玩插件和大漠插件哪个好_哪个PS后期插件功能最多最强?风光人像全能修图王!一个顶五个...
  15. 分享一些Photoshop的教程电子档(pdf格式),初学者与设计师适用
  16. 美国NBC电视台社论 中文版
  17. 2022中国智能家居产业博览会
  18. iOS 事件分类及事件分发机制
  19. 北大郭炜算法课笔记整合
  20. 从 Eligibility 浅谈英中翻译消除歧义的重要性

热门文章

  1. 无人机拍滑雪不够酷,用GoPro Omni VR如何?
  2. 无盘4k剪辑服务器,让无盘服务器提速10倍的SSD解决方案
  3. 疯狂java实战_疯狂java实战演义.pdf
  4. 每日新闻 | 科技部出台27条措施;中国联通加快5G建设
  5. Semantic UI入门
  6. mysql-MDL元数据锁
  7. javascript面对对象编程指南第三章 函数
  8. 《区块链革命》读书笔记4 万物账本:物理世界的活化
  9. 怎么解决tekla节点中梁的对齐方式在节点内外有差异
  10. 微信小程序获取系统日期和时间 —— 微信小程序教程系列(17)