蓝桥杯 ALGO-21算法训练 装箱问题 java版
有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。
要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。
第二行为一个整数,表示有n个物品;
接下来n行,每行一个整数表示这n个物品的各自体积。
样例输入
24
6
8
3
12
7
9
7
import java.util.Scanner;public class Main {private static int[][] dpOne;private static int[] dpTwo;public static void main(String[] args) {Scanner in = new Scanner(System.in);int V = in.nextInt();int n = in.nextInt();dpOne = new int[n + 1][V + 1];int[] v = new int[n + 1];for (int i = 1; i <= n; i++) {v[i] = in.nextInt();}in.close();MethodOne(n, v, V);System.out.println(V - dpOne[n][V]);dpTwo = new int[V + 1];MethodTwo(n, v, V);System.out.println(V - dpTwo[V]);}/** 用二维数组来存储 前n个物品放入体积为V的背包中,对于每个物品,如果不取,dp[i][j] = dp[i -* 1][j]即前n-1个物品来装体积为V的这个背包 如果取,dp[i][j] = dp[i - 1][j - v[i]] + v[i]即前n* -1个物品来装体积为V - v[i]的这个背包*/private static void MethodOne(int n, int[] v, int V) {for (int i = 1; i <= n; i++) {for (int j = 1; j <= V; j++) {if (j >= v[i]) {dpOne[i][j] = Integer.max(dpOne[i - 1][j], dpOne[i - 1][j - v[i]] + v[i]);} else {dpOne[i][j] = dpOne[i - 1][j];}}}}/** 用一维数组来存储 对于每个物品都有取和不取两个状态,如果不取,dp[j]不变,如果取dp[j] = dp[j - v[i]] + v[i]*/private static void MethodTwo(int n, int[] v, int V) {for (int i = 1; i <= n; i++) {for (int j = V; j > 0; j--) {if (j >= v[i]) {dpTwo[j] = Integer.max(dpTwo[j], dpTwo[j - v[i]] + v[i]);}}}}
}
蓝桥杯 ALGO-21算法训练 装箱问题 java版相关推荐
- 蓝桥杯:试题 算法训练 Remember the A La Mode
蓝桥杯:试题 算法训练 Remember the A La Mode 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 Hugh Samston经营着一个为今年的ICPC世界总决赛的参 ...
- 矩阵乘法 算法训练 试题_蓝桥杯习题集_ 算法训练 矩阵乘法
原文: 算法训练 矩阵乘法 时间限制:1.0s 内存限制:512.0MB 问题描述 输入两个矩阵,分别是m*s,s*n大小.输出两个矩阵相乘的结果. 输入格式 第一行,空格隔开的三个正整数m,s, ...
- java蓝桥杯的题_Java蓝桥杯试题集——算法训练ALGO-116——最大的算式
题目要求 解题思路 动态规划,今天才弄明白QAQ,借鉴了这位大佬的博客,曹磊的博客 写的很好!但是我觉得我的循环方式更容易理解嘿嘿嘿~ 首先建立如下图的数组,行数代表前几位数,列数代表有几个乘号.将第 ...
- 蓝桥杯 ALGO-83 算法训练 阶乘 java版
问题描述 一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积.阶乘的增长速度非常快,例如,13!就已经比较大了,已经无法存放在一个整型变量中:而35!就更大了,它已经无法存放在一个浮点型变量 ...
- 蓝桥杯练习系统算法训练习题加答案java版本
附上百度文库的链接:http://wenku.baidu.com/view/afb78d36b42acfc789eb172ded630b1c59ee9bf7 转载于:https://www.cnblo ...
- 蓝桥杯练习系统—算法训练 s01串
第一部分:题目 问题描述 s01串初始为"0" 按以下方式变换 0变1,1变01 输入格式 1个整数(0~19) 输出格式 n次变换后s01串 样例输入 3 样例输出 101 数据 ...
- 蓝桥杯:试题 算法训练 采油区域 矩阵前缀和+动态规划+分治+枚举
资源限制 时间限制:2.0s 内存限制:512.0MB 采油区域 Siruseri政府决定将石油资源丰富的Navalur省的土地拍卖给私人承包商以建立油井.被拍卖的整块土地为一个矩形区域,被划分为M× ...
- 蓝桥杯-黑色星期五(算法训练)
题目描述: 有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,用古人的说法,就是"诸事不宜".请你编写一个程序,统计出在某个特定的年份中,出现了多少次既是1 ...
- 【算法】【蓝桥杯】试题 算法训练 黑心药商 ALGO-1002
题目 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 JiaoShou消灭了百变怪,为爱琳世界赢得了和平,但他突然发现自己没有升级,这就意味着必须去喝药补血.爱琳世界的NPC卖的药已 ...
最新文章
- exe反编译_反编译Python生成exe软件(Py3-polySML)
- Android Gradle manifestPlaceholders 占位符详解
- 基于dreamweaver软件设计和开发一网站_基于 abp vNext 和 .NET Core 开发博客项目 Blazor 实战系列(一)...
- 设计模式之禅读书笔记
- 爱奇艺CEO龚宇呼吁网络电影涨价:6块钱太低了
- Java中的Math类和日期类详解
- 仓库保管工计算机试题,仓库保管工中级试卷答案.doc
- mac 自带连接ftp服务器,Mac自带FTP工具使用
- 利用ARCGIS制作MIKE21边界文件
- PHP利用有道智云提供的API接口来翻译字符串
- 联通光猫IPV6配置
- 科学与财富杂志科学与财富杂志社科学与财富编辑部2022年第27期目录
- mysql blast2go_blast2go本地化教程
- jQuery weui Select组件显示指定值
- Vue中使用纯CSS实现全屏网格加渐变色背景布局
- 递归遍历文件夹,递归解压,压缩文件,写解压和压缩过程的日志,
- 网页中 BarcodeReader.js 识别商品条形码
- Android中Intent.setAction简单使用
- 分享一个美团大佬的面试笔记 - MySQL 30 问与答
- 计算机专业英语作业1,计算机专业英语作业(1)
热门文章
- Android开发学习之仿手机QQ消息列表侧滑删除效果
- php 上传大文件主要涉及配置upload_max_filesize和post_max_size两个选项
- 跨服务器查询信息的sql
- Quartz总结(四):动态修改定时器二
- 主流视频客户端核心代码的实现
- apache自定义虚拟主机日志格式
- MYSQL 主从复制读写分离实现
- 10条建议让你创建更好的jQuery插件(转载)
- 第二十三届高交会闭幕 奇安信三项产品获评“优秀产品奖”
- 详解苹果 macOS Mail 中的零点击漏洞