排序——[USACO07DEC]Bookshelf B
排序——[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相关推荐
- P2676 [USACO07DEC]Bookshelf B(随缘学习)
P2676 [USACO07DEC]Bookshelf B(随缘学习) 前言 # 一.题目 **题目描述** Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是 ...
- 【快速排序】—— [USACO07DEC]Bookshelf B
快速排序方法 背景 快速排序(Quicksort)是对冒泡排序的一种改进,它由C. A. R. Hoare在1960年提出,其基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有 ...
- (Java) [USACO07DEC]Bookshelf B
[USACO07DEC]Bookshelf B 题目描述 Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了.现在,只有书架的顶上 ...
- P2676 [USACO07DEC]Bookshelf B
题目描述 Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了.现在,只有书架的顶上还留有一点空间. 所有 N(1≤N≤20,000 ...
- 【洛谷】P2676 [USACO07DEC]Bookshelf B (c++)
题目描述 Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了.现在,只有书架的顶上还留有一点空间. 所有 N(1≤N≤20,000 ...
- 1177: 按要求排序(指针专题)_L2算法基础第10课 排序中
L2-算法基础-第10课 排序中 排序 归并排序 归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法.该算法是采用分治法(Divide and Conquer)的一个非常典型的应用 ...
- C++的sort函数如何实现从大到小排序
C++的sort函数如何实现从大到小排序 一.sort的基本用法 1. 所在的头文件 2. 包含的参数 3. 时间复杂度 二.具体示例 [USACO07DEC\]Bookshelf B 题目描述 输入 ...
- 【OJ】洛谷排序题单题解锦集
题单简介 题目解析 P1271[深基9.例1]选举学生会 P1177[模板]快速排序 P1923[深基9.例4]求第 k 小的数 P1059 明明的随机数 P1093 奖学金 P1781 宇宙总统 P ...
- 【算法1-2】排序(今天刷洛谷了嘛)
P1271 [深基9.例1]选举学生会 #include<iostream> #include<algorithm> #include<cstdio> #inclu ...
最新文章
- python之 数据类型判定与类型转换
- (传送门) Ubuntu随身系统
- win7自带远程应用
- Java Spring MVC model学习
- python常用字符串处理函数_Python第10课:常用的字符串处理函数
- 基于java SSM图书管理系统简单版设计和实现
- 希望直接访问系统内某个链接,跳过登录验证等过程
- 前四史 —— 《后汉书》
- FFmpeg源代码简单分析:内存的分配和释放(av_malloc()、av_free()等)
- mysql字符集导出_关于mysql字符集及导入导出
- Pwn入门之ELF文件
- android gps 经纬度转换,AndroidGPS获取当前经纬度坐标
- MAC版SecureCRT+SecureFX 安装说明
- 乐玩插件和大漠插件哪个好_哪个PS后期插件功能最多最强?风光人像全能修图王!一个顶五个...
- 分享一些Photoshop的教程电子档(pdf格式),初学者与设计师适用
- 美国NBC电视台社论 中文版
- 2022中国智能家居产业博览会
- iOS 事件分类及事件分发机制
- 北大郭炜算法课笔记整合
- 从 Eligibility 浅谈英中翻译消除歧义的重要性