目录标题

  • 题目描述
  • 解题思路
  • 代码
  • 流程图

题目描述

元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得的纪念品价值 相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品,并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时 间内发完所有纪念品,乐乐希望分组的数目最少。
  你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。

输入
输入描述:
  输入包含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

HINT:时间限制:1.0s 内存限制:256.0MB
  50%的数据满足:1 <= n <= 15
  100%的数据满足:1 <= n <= 30000, 80 <= w <= 200

解题思路

就把输入的元素添加到数组中,之后再排序一下,因为每组不超过两件,就可以让最小值和最大值依次相加看是否超过了限度,若超过了则最大的一个一组,若没超过则两件一组,依次循环直到分完为止。

代码

import java.util.Arrays;
import java.util.Optional;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner=new Scanner(System.in);int m=scanner.nextInt();//最大限制int n=scanner.nextInt();//个数int []a=new int[n];//接收数据for (int i=0;i<n;i++) {a[i]=scanner.nextInt();//填入数据}Arrays.sort(a);//按自然序列排序int b=0;//最小值int c=a.length-1;//最大值int d=0;//分组个数while (b<=c){//循环结束条件if (a[b]+a[c]>m){//如果最小值加最大值大于限制c--;//把最大值放入单独的一个组d++;}else {//若小于最大限制b++;//则把他们两个都放入一个组c--;d++;}}System.out.println(d);//输出组的个数}
}

流程图

Created with Raphaël 2.3.0开始输入最大限制m 礼物个数n 定义数组aa填入元素按自然序列对a排序定义数组最小值b,最大值c.分组个数db<=ca的最小值+最大值>mc--,d++b++,c--,d++输出分组的个数结束yesnoyesno

Java 算法 礼物分配相关推荐

  1. 操作系统分区分配java算法_合肥工业大学操作系统课程设计 动态分区分配存储管理java版.doc...

    合肥工业大学操作系统课程设计 动态分区分配存储管理java版.doc 1课程设计动态分区分配存储管理设计题目学号专业班级学生姓名号指导教师22010年12月合肥工业大学课程设计任务书设计题目动态分区分 ...

  2. Java算法--第三章--排序(14)概述

    Java算法–第三章–排序(14)概述 排序算法的总结: 一.基础排序-----算法评估等级:O(n²) 1.冒泡 谁大谁上,每一轮都把最大的顶到天花板效率太低O(n2)–掌握swap 2.选择排序, ...

  3. java算法----排序----(6)希尔排序(最小增量排序)

    1 package log; 2 3 public class Test4 { 4 5 /** 6 * java算法---希尔排序(最小增量排序) 7 * 8 * @param args 9 */ 1 ...

  4. 希尔排序的java算法_Java算法系列篇 【希尔排序】

    什么? 搞Java不会算法? 由于个人兴趣原因以及工作所需,最近了解Java算法的相关案例 及时分享 感兴趣的欢迎交流 希尔排序 描述: 基本思想:先将整个待排序的记录序列分割成为若干子序列分别进行直 ...

  5. 1.1.10 从二分查找BinarySearch开启算法学习之路---《java算法第四版》

    文章目录 0.前言 1.功能 2.示例 有两个名单tinyW.txt和tinyT.txt,将tinyT.txt名单中不在tinyW.txt的数据打印出来 ① 实现原理 ② 实现代码 ③ 性能分析 0. ...

  6. Set精讲(Java)·算法常用集合处理方法

    Set精讲(Java)·算法常用集合处理方法 Set概述 Set集合类似于一个罐子,程序可以依次把多个对象"丢进"Set集合,而Set集合通常不能记住元素的添加顺序.实际上Set就 ...

  7. 128位java_求一个java算法,用128位密钥的AES加密128位明文,得出的密文还是128位...很着急,非常感谢各位大神,求救!...

    求一个java算法,用128位密钥的AES加密128位明文,得出的密文还是128位...很着急,非常感谢各位大神,求救! 关注:157  答案:1  mip版 解决时间 2021-02-03 09:1 ...

  8. java算法:冒泡排序

    java算法:冒泡排序 冒泡排序:不断遍历文件,交换倒序的相邻元素,直到文件排好顺序.冒泡排序的主要优点是容易实现,冒泡排序通常会比选择排序.插入排序慢. 如,对EXAMPLE 字母进行排序:  E  ...

  9. 悲哀!面试现场,简单几道java算法题,90%程序员没写出来

    这两天小编逛论坛的时候发现一个很有意思的事情,就是一位互联网公司的面试官分享的,他们最近想招一批java的实习生,所以他们的面试题并不难,但是前来面试的人,却很多都挂在了几道算法题上,要么就是逻辑不严 ...

最新文章

  1. mongodb不等于某个值_MongoDb进阶实践之四 MongoDB查询命令详述
  2. 初级搭建博客mysql_mysql 初级命令学习2
  3. JEPLUS学习心得之请假单功能的完成——JEPLUS软件快速开发平台
  4. mysql转化为GaussDB,GaussDB(openGauss)宣布开源,性能超越 MySQL 与 PostgreSQL
  5. 配置zabbix监控windows,cmd运行报错cannot connect to Service Manager: [0x00000005]
  6. vue点击按钮切换显示不同内容_邂逅Vue
  7. 如何把一个软件嵌入另一个软件_新增一个软件一个游戏
  8. uni-app 微信小程序授权登录
  9. 显示行号 visual studio 1006
  10. [20150828]插入commit scn到记录.txt
  11. 在Android上将ONNX神经网络模型与TensorFlow Lite结合使用
  12. 【iOS-Cocos2d游戏开发之二十一 】自定义精灵类并为你的精灵设置攻击帧(指定开始帧)以及扩展Cocos2d源码的CCAnimation简化动画创建!...
  13. Python DearPyGui 进阶
  14. use texstudio with chinese on ubuntu
  15. 微软要解决癌症问题?
  16. php中fread用法,php fread函数与fread函数用法_PHP教程
  17. pytorch深度学习任务模板demo
  18. bugzilla mysql 配置_Bugzilla 系统配置指南(Win32)
  19. Docker【部署 02】可视化工具DockerUI和Shipyard安装使用实例
  20. resultFul请求案例

热门文章

  1. 设置相机的距离_数码相机的曝光判断标准是什么
  2. python excel详解_Python - excel 详解
  3. ps制作20种特效文字_如何使用AE制作文字破碎动画?制作ae破碎文字特效教程分享...
  4. OGRE针对图形API调用的效率优化
  5. NXP Pico i.MX7D上安装Android Things系统疑难杂症汇总
  6. 关于Web安全的三个攻防姿势
  7. Tomcat软连接访问配置(symbol link)
  8. 10天学安卓-第七天
  9. I/O复用模型之select学习
  10. ARP欺骗报文是这个样子的