贪心----书架
2016-08-26 16:10
260 查看
2407:书架
总时间限制: 20000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB描述
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 13 19 11
样例输出
3
分析:这道题是用贪心算法,应为这道题不要求尽量离书架近,要想够到书架又要用的牛最少,只有让使用的牛的高度尽可能高,但每次用的时候就要扫描一次,所以可以先给它把高度从大到小的排序,然后按顺序累加,直到高于或等于书架为止。下面是参考程序:
#include<cstdio> int main() { int n,i,j,a[20005],b,m; scanf("%d%d",&n,&b); for(i=1;i<=n;i++) scanf("%d",&a[i]); for(j=1;j<=n;j++) { for(i=j+1;i<=n;i++) { if(a[j]<a[i]) { m=a[j]; a[j]=a[i]; a[i]=m; } } } m=0; for(i=1;i<=n;i++) { m+=a[i]; if(m>=b) break; } printf("%d",i); }打字很累,编写代码更累,求顶(0—0)
相关文章推荐
- 书架(贪心,POJ2407)
- |NOIOJ|贪心|2407:书架
- 算法之贪心书架
- HDU1009_FatMouse' Trade【贪心】【水题】
- hrbust 哈理工oj 1588 神医【贪心】
- UVALive 6424 Russian Dolls 贪心
- Codeforces Round #444 (Div. 2) D. Ratings and Reality Shows 贪心
- hdu 4091 Zombie’s Treasure Chest 贪心+枚举
- Codeforces 651A Joysticks 【贪心】
- poj Supermarket(贪心)(并查集)(优先队列)
- HDU 2037 今年暑假不AC(贪心)
- 9种基本算法_贪心
- 蓝桥杯--历届试题 翻硬币(贪心)
- UVa 10382 - Watering Grass (贪心—区间覆盖)
- UVA - 11292 Dragon of Loowater ( 排序 贪心 )
- hdu4011(水贪心)
- nyoj 会场安排问题 贪心
- JZOJ 3.10 1541——书架
- 贪心 HDU.OJ 2037 今年暑假不AC
- 高效面试之贪心算法