试题 算法训练 纪念品分组

资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
  元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得的纪念品价值 相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品,并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时 间内发完所有纪念品,乐乐希望分组的数目最少。
  你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。
输入格式
  输入包含n+2行:
  第1行包括一个整数w,为每组纪念品价格之和的上限。
  第2行为一个整数n,表示购来的纪念品的总件数。
  第3~n+2行每行包含一个正整数pi (5 <= pi <= w),表示所对应纪念品的价格。
输出格式
  输出仅一行,包含一个整数,即最少的分组数目。
样例输入
100
9
90
20
20
30
50
60
70
80
90
样例输出
6
数据规模和约定
  50%的数据满足:1 <= n <= 15
  100%的数据满足:1 <= n <= 30000, 80 <= w <= 200

**讲解:
1.使用集合做比较好做,也好理解
2.将纪念品升序处理
3.每一次去最大的和最小的相加,如果没有超出规定价格,那么这两个做一组,不然最大的就单独做一组
4.好好看一下代码,很好理解的**import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;public class 纪念品分组 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);    //此类用于控制台读取数据int w=sc.nextInt();int n=sc.nextInt();                   //调用方法在控制台读取一个int的整数ArrayList<Integer> list=new ArrayList<>(); //保存数据for(int i=0;i<n;i++){list.add(sc.nextInt());}int sum=0;        //分组的数量Collections.sort(list);   //使用工具类对集合数据进行排序while(list.size()>1){int a=list.get(0);    //取出第一个,也就是最小值的那个礼物数据int b=list.get(list.size()-1); //取出最后一个,也就是最大的那一个if(a+b>w)          //如果最小那一个加上最大的那一个已经超出规定价格之和{    list.remove(list.size()-1); //那就最大的礼物自己单独做一组,然后在集合中删除这个数据sum++;        }else{list.remove(list.size()-1); //如果最小那一个加上最大的那一个没有超出规定价格之和,那就两个做一组list.remove(0);sum++;}}if(list.size()==1)   //如果集合中还有一个数据就做一组{sum++;}System.out.print(sum);}}

java 蓝桥杯算法训练 纪念品分组(题解)相关推荐

  1. java 蓝桥杯算法训练 水仙花(题解)

    试题 算法训练 水仙花 资源限制 时间限制:1.0s 内存限制:256.0MB 水仙花数 问题描述 判断给定的三位数是否 水仙花 数.所谓 水仙花 数是指其值等于它本身 每位数字立方和的数.例 153 ...

  2. java 蓝桥杯算法训练 整除问题(题解)

    试题 算法训练 整除问题 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 编写一个程序,输入三个正整数min.max和factor,然后对于min到max之间的每一个整数(包括min ...

  3. java 蓝桥杯算法训练 数字三角形(题解)

    试题 算法训练 数字三角形 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 (图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的 ...

  4. java 蓝桥杯算法训练 每月的天数(题解)

    试题 算法训练 每月的天数 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 编写程序,输入月份,输出该月包含的天数,例如1月有31天(设定年份为2015年) 输入格式 一个整数:月份 ...

  5. java 蓝桥杯算法训练 最大值与最小值的计算(题解)

    试题 算法训练 最大值与最小值的计算 资源限制 时间限制:1.0s 内存限制:512.0MB 输入11个整数,计算它们的最大值和最小值. 样例输入 0 1 2 3 4 5 6 7 8 9 10 样例输 ...

  6. java 蓝桥杯算法训练 猴子分苹果(题解)

    试题 算法训练 猴子分苹果 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 秋天到了,n只猴子采摘了一大堆苹果放到山洞里,约定第二天平分.这些猴子很崇拜猴王孙悟空,所以都想给他留一些 ...

  7. java 蓝桥杯算法训练 4-1打印下述图形(题解)

    试题 算法训练 4-1打印下述图形 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 使用循环结构打印下述图形,打印行数n由用户输入.打印空格时使用"%s"格式,向 ...

  8. java 蓝桥杯算法训练 奇变的字符串(题解)

    试题 算法训练 奇变的字符串 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 将一个字符串的奇数位(首位为第0位)取出,将其顺序弄反,再放回原字符串的原位置上. 如字符串" ...

  9. java蓝桥杯算法训练 相l邻字母(题解)

    试题 算法训练 相邻字母 资源限制 时间限制:1.0s 内存限制:256.0MB [问题描述] 从键盘输入一个英文字母,要求按字母的顺序打印出3个相邻的字母,指定的字母在中间.若指定的字母为Z,则打印 ...

最新文章

  1. canvas上的像素操作(图像复制,细调)
  2. 引用借以记录借鉴 实现记住密码和自动登录功能
  3. WebKit和Chrome源码分析
  4. python基础(一)简单入门
  5. C++---汉明距离
  6. .Net Core 商城微服务项目系列(二):使用Ocelot + Consul构建具备服务注册和发现功能的网关...
  7. 「网络流24题」 题目列表
  8. sigkill mysql_Ubuntu不能停止mysqld
  9. File Operation
  10. UVA457 Linear Cellular Automata【模拟】
  11. spring security 注解_Spring框架使用@Autowired自动装配引发的讨论
  12. [数论] 快速傅里叶变换FFT
  13. sunlight的中文_Diana Vickers的Sunlight中文歌词。
  14. 天龙八部服务器端 修改缥缈峰副本,天龙八部手游缥缈峰副本怎么过 缥缈峰副本过关攻略...
  15. linux nfs 测试 读写,部署NFS与测试NFS
  16. win10系统设置还原点,系统永不奔溃
  17. 戴尔笔记本怎么安装统信uos系统?戴尔笔记本安装统信uos+win双系统
  18. 硬件描述语言Verilog学习(五)
  19. OpenAI Codex,GitHub Copilot 和cheat.sh 三个代码建议工具对比
  20. 阿里生活物联平台笔记一 app配网

热门文章

  1. ironpython调用c dll_IronPython脚本调用C#dll示例
  2. 什么高大填空四个字动人_雅思考试的技巧?雅思听力part4填空做题技巧分享
  3. ElasticSearch概述及安装
  4. 场强和电阻_电阻定律及其相关问题
  5. android+动画完成后不可点击,动画后,TranslateAnimated ImageView无法点击[Android]
  6. php链接文字变色,Linux_不断变色的文字,不断变色的文字效果,漂亮而 - phpStudy...
  7. find函数常见错误_终于找到你,查找函数,find必不可少
  8. ajax 请求成功 再执行javascript,jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法...
  9. oracle判断某列是否有单引号_sql注入二 ——数据库信息判断
  10. pandas拉长dataframe