NaOH计划组织一次讲座,为了保证每位来参加的同学都有椅子坐,他需要你帮他计算一下最少需要多少把椅子。
已知会有n个人来参加讲座,并且知道每个人体重。为了节约空间,每把椅子可以坐一个人或者两个人,椅子的承重为固定值。显然要求坐椅子的人的总重量不超过椅子的承重。

Input

第一行包含两个正整数n (0<n<=10000)和m (0<m<=2000000000),表示人数和椅子的承重。
接下来n行,每行一个正整数,表示每个人的体重,体重不超过1000000000。数据保证每个人的体重不超过m。

Output

一行一个整数,表示NaOH最少需要的椅子数。

Sample Input

3 6
1
2
3

Sample Output

2

思路:排序,最重的人和最轻的人坐,能坐就坐,不能坐就自己坐。即,左右指针,若能坐一起,head++;tail-;若不能,tail--

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;int a[20000];int main()
{int num,max,count=0;cin>>num>>max;for(int i=0;i<num;i++)cin>>a[i];sort(a,a+num);int head=0;int tail=num-1;while(head<=tail){count++;if(head==tail)break;else if(a[head]+a[tail]>max)tail--;else{head++;tail--;}}cout<<count<<endl;system("pause");return 0;
}

ACM training贪心算法——坐椅子的背包问题相关推荐

  1. 用贪心算法解背包问题(装载问题)

    题目描述 给定一个最大载重量为M的卡车和N种食品,有食盐,白糖,大米等.已知第 i 种食品的最多拥有Wi 公斤,其商品价值为Vi元/公斤,编程确定一个装货方案,使得装入卡车中的所有物品总价值最大. 题 ...

  2. 贪心算法 背包问题 java_贪心算法解背包问题

    背包问题:与0-1背包问题类似,所不同的是在选择物品i装入背包时,可以选择物品i的一部分,而不一定要全部装入背包,1 <= i <= n.这2类问题都具有最优子结构性质,极为相似,但背包问 ...

  3. 部分背包的贪婪算法 java_使用JAVA实现算法——贪心算法解决背包问题

    packageBasePart;importjava.io.BufferedReader;importjava.io.FileInputStream;importjava.io.IOException ...

  4. 贪心算法之——背包问题(nyoj106)

    背包问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<= ...

  5. 算法设计与分析(第四周)贪心算法、背包问题

    贪心算法 顾名思义,贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择.当然,希望贪心算法得到的最终结果也是整体最优的. 虽然贪心算 ...

  6. 算法设计与分析——贪心算法——背包问题

    0-1背包问题: 前提:给定n种物品和一个背包.物品i的重量是Wi,其价值为Vi,背包的容量为C. 问题:应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 背包问题: 与0-1背包问题类似, ...

  7. 背包问题 贪心算法 java_JS基于贪心算法解决背包问题

    前面我们分享了关于js使用贪心算法解决找零问题,本文我们接着为大家介绍JS基于贪心算法解决背包问题. 贪心算法:在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做 ...

  8. 贪心算法 0-1背包c语言,贪心算法0-1背包问题(算法实验代码).pdf

    . 实验三. 0-1 背包问题(贪心算法) 实验代码: #include int max(int a,int b) { if(a>b) return a; else return b; } vo ...

  9. 贪心算法|Greedy Algorithms(背包问题)

    贪心算法是一种用于优化问题的简单.直观的算法.该算法在寻找整体最优解的过程中,每一步都进行最优选择.贪心算法在一些问题上是非常成功的,例如用于压缩数据的霍夫曼编码,或者用于通过图寻找最短路径的Dijk ...

最新文章

  1. 文章3:车载LIDAR点云数据中杆状地物自动提取与分类
  2. R语言sample函数数据对象采样实战
  3. 控制器框架Struts与策略模式那点事
  4. 访问备份数据寄存器时,需要打开BKP时钟吗?
  5. bool类型数组转换成一个整数_Go 学习笔记 02 | 基本数据类型以及 byte 和 rune 类型...
  6. 学习Spring Boot:(四)应用日志
  7. python数据分析系列教程——Pandas全解
  8. 主题模型TopicModel:LSA(隐性语义分析)模型和其实现的早期方法SVD
  9. Red5边源服务器集群部署
  10. PIC单片机学习-中断
  11. vscode 字体颜色变得花里胡哨的
  12. Cypress UI 自动化测试框架
  13. 【手绘】海贼王女帝汉库克 - 附完整手绘教程
  14. iap支付java校验_iOS应用内支付(IAP)服务端端校验详解
  15. 格局打开,外贸牛人的价格谈判策略!
  16. 求负整数补码不用对原码+1进位的技巧
  17. 电脑老系统怎么换新系统?
  18. 一款RS485电表的调试与上位机通讯过程
  19. 攻防演练建设过程中技术考虑
  20. Oracle-索引、视图

热门文章

  1. pytho tkinter 应用第一个窗口
  2. gnss单频软件接收机应用与编程_多星座是当今接收机的标准,而多频多用于高精度领域...
  3. 1433 mssql 安全_mssqlsql2008安全配置又一给力教程
  4. 计算机组成原理CRC相关运算,计算机专业基础综合计算机组成原理(数据的表示和运算)-试卷1...
  5. 操作系统 第四章 文件管理
  6. 计算机组成原理 第五章 中央处理器
  7. C++中的getline函数
  8. Java代码优化技巧
  9. 使用免费ip代理进行投票
  10. LeetCode 面试题 01.06. 字符串压缩 (双指针)