洛谷P2676 超级书架

题目描述

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个整数,即最少要多少头奶牛叠成塔,才能够到书架顶部

输入输出样例

输入样例#1:

6 40
6
18
11
13
19
11

输出样例#1:

3

说明

输入说明:

一共有6头奶牛,书架的高度为40,奶牛们的身高在6..19之间。

输出说明:

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

priority_queue维护大根堆,贪心累加。

并没有在水博(才怪)

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cmath>
 5 #include<queue>
 6 using namespace std;
 7 int n,b;
 8 int x;
 9 int ans=0;
10 priority_queue<int>tp;
11 int main(){
12     int i,j;
13     scanf("%d%d",&n,&b);
14     for(i=1;i<=n;i++){
15         scanf("%d",&x);
16         tp.push(x);
17     }
18     long long smm=0;
19     while(smm<b){
20         ans++;
21         smm+=tp.top();
22         tp.pop();
23     }
24     cout<<ans<<endl;
25     return 0;
26 }
时间: 2024-10-14 16:34:44

洛谷P2676 超级书架的相关文章

洛谷——P2676 超级书架

https://www.luogu.org/problem/show?pid=2676#sub 题目描述 Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了.现在,只有书架的顶上还留有一点空间. 所有N(1 <= N <= 20,000)头奶牛都有一个确定的身高H_i(1 <= H_i <= 10,000).设所有奶牛身高的和为S.书架的高度为B,并且保证 1 <= B <= S < 2,000

洛谷P2676 超级书架 题解

题目传送门 题目一看就是贪心.C++福利来了:sort. 基本思路就是:要使奶牛最少那么肯定高的奶牛先啦. 直接排序一遍(从高到矮)然后while,搞定! #include<bits/stdc++.h> #define ll long long using namespace std; ll N,B,H[20010]; bool cmp(int x,int y){return x>y;} int main(){ scanf("%lld%lld",&N,&

洛谷 P2677 超级书架 2

P2677 超级书架 2 题目描述 Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了.现在,只有书架的顶上还留有一点空间. 所有N(1 <= N <= 20)头奶牛都有一个确定的身高H_i(1 <= H_i <= 1,000,000 - 好高的奶牛>_<).设所有奶牛身高的和为S.书架的 高度为B,并且保证1 <= B <= S. 为了够到比最高的那头奶牛还要高的书架顶,奶牛们不得不象演

洛谷P2677 超级书架 2

题目描述 Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了.现在,只有书架的顶上还留有一点空间. 所有N(1 <= N <= 20)头奶牛都有一个确定的身高H_i(1 <= Hi <= 1,000,000 - 好高的奶牛><). 设所有奶牛身高的和为S.书架的 高度为B,并且保证1 <= B <= S. 为了够到比最高的那头奶牛还要高的书架顶,奶牛们不得不象演杂技一般,一头站在另一头的背

洛谷P1848 [USACO12OPEN]书架Bookshelf

当农夫约翰闲的没事干的时候,他喜欢坐下来看书.多年过去,他已经收集了 N 本书 (1 <= N <= 100,000), 他想造一个新的书架来装所有书. 每本书 i 都有宽度 W(i) 和高度 H(i).书需要按顺序添加到一组书架上:比如说,第一层架子应该包含书籍1 ... k,第二层架子应该以第k + 1本书开始,以下如此.每层架子的总宽度最大为L(1≤L≤1,000,000,000).每层的高度等于该层上最高的书的高度,并且整个书架的高度是所有层的高度的总和,因为它们都垂直堆叠. 请帮助农

【洛谷P2676】超级书架

题目描述 Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了.现在,只有书架的顶上还留有一点空间. 所有N(1 <= N <= 20,000)头奶牛都有一个确定的身高H_i(1 <= H_i <= 10,000).设所有奶牛身高的和为S.书架的高度为B,并且保证 1 <= B <= S < 2,000,000,007. 为了够到比最高的那头奶牛还要高的书架顶,奶牛们不得不象演杂技一般,一头站在另

洛谷P2667 超级质数 [2017年6月计划 数论05]

P2667 超级质数 题目背景 背景就是描述,描述就是背景...... 题目描述 一个质数如果从个位开始,依次去掉一位数字,两位数字,三位数字......直到只剩一位数字中间所有剩下的数都是质数,则称该质数为一个超级质数.例如:2333是一个质数,因为2333,233,23,2都是质数,所以2333是一个四位超级素数.请你写一个程序,给定一个整数X,求大小小于X的超级质数. 输入输出格式 输入格式: 一行,给出一个整数X(1<=X<=100000000). 输出格式: 第一行,一个整数k,表示

洛谷P2596 [ZJOI2006]书架【splay】

题目描述 小T有一个很大的书柜.这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列.她用1到n的正整数给每本书都编了号. 小T在看书的时候,每次取出一本书,看完后放回书柜然后再拿下一本.由于这些书太有吸引力了,所以她看完后常常会忘记原来是放在书柜的什么位置.不过小T的记忆力是非常好的,所以每次放书的时候至少能够将那本书放在拿出来时的位置附近,比如说她拿的时候这本书上面有X本书,那么放回去时这本书上面就只可能有X-1.X或X+1本书. 当然也有特殊情况,比如在看书的时候突然电话响了或者有朋友

洛谷1103 书本整理

洛谷1103 书本整理 本题地址:http://www.luogu.org/problem/show?pid=1103 题目描述 Frank是一个非常喜爱整洁的人.他有一大堆书和一个书架,想要把书放在书架上.书架可以放下所有的书,所以Frank首先将书按高度顺序排列在书架 上.但是Frank发现,由于很多书的宽度不同,所以书看起来还是非常不整齐.于是他决定从中拿掉k本书,使得书架可以看起来整齐一点. 书架的不整齐度是这样定义的:每两本书宽度的差的绝对值的和.例如有4本书: 1x2 5x3 2x4