联机装箱问题 java_Java实现 洛谷 P1049 装箱问题
题目描述
有一个箱子容量为V(正整数0≤V≤20000),同时有n个物品(0
要求nn个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。
输入输出格式
输入格式:
1个整数,表示箱子容量
1个整数,表示有n个物品
接下来n行,分别表示这n个物品的各自体积
输出格式:
1个整数,表示箱子剩余空间。
输入输出样例
输入样例#1:
24
6
8
3
12
7
9
7
输出样例#1:
0
这里先介绍最经典的动态规划
下面还有一个简化版的
import java.util.Scanner;
public class zhuangxiangwenti {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
int v = sc.nextInt();
int n = sc.nextInt();
int [] num = new int [n+1];
for (int i = 1; i < num.length; i++) {
num[i]=sc.nextInt();
}
int [] [] dp = new int[n+1][v+1];
int min = Integer.MAX_VALUE;
for (int i = 1; i < n+1; i++) {
for (int j = 1; j
if(j>=num[i]){
dp[i][j]=Math.max(dp[i-1][j],dp[i-1][j-num[i]]+num[i]);
}
else{
dp[i][j]=dp[i-1][j];
}
}
min = Math.min(min, v-dp[i][v]);
}
System.out.println(min);
}
}
import java.util.Scanner;
public class zhuangxiangwenti2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int w = sc.nextInt();
int n = sc.nextInt();
int[] ff = new int[n];
for (int i = 0; i < ff.length; i++) {
ff[i] = sc.nextInt();
}
int[] t = new int[w + 1];
for (int i = 0; i < n; i++) {
for (int j = w; j >= 0; j--) {
if (j >= ff[i]) {
t[j] = Math.max(t[j], t[j - ff[i]] + ff[i]);
}
}
}
System.out.println(w - t[w]);
}
}
联机装箱问题 java_Java实现 洛谷 P1049 装箱问题相关推荐
- 洛谷 P1049 装箱问题(01背包)
一道水题,但看到好久没有发博客了,再一看是一道noip普及组t4,就做了. 题目链接 https://www.luogu.org/problemnew/show/P1049 解题思路 一道裸的01背包 ...
- 动态规划求解装箱问题(洛谷P1049题题解,Java语言描述)
题目要求 P1049题目链接 分析 这种题不能贪心,大家都懂的,应该使用DP. 比如容量为7,有三个物品体积是1,2,5,你要是先装小的,就只能装3,剩下4,但实际上可以装的只剩一个. 如果容量为10 ...
- 洛谷P1049: 装箱问题
https://www.luogu.org/problemnew/show/P1049 题目描述 有一个箱子容量为V(正整数,0≤V≤20000),同时有n个物品(0<n≤30,每个物品有一个体 ...
- 装箱问题(洛谷-P1049)
题目描述 有一个箱子容量为 V (正整数, 0≤V≤20000 ),同时有 n 个物品( 0<n≤30 ,每个物品有一个体积(正整数) 要求 n 个物品中,任取若干个装入箱内,使箱子的剩余空间为 ...
- P1049装箱问题(背包,变形)
洛谷P1049 法一 #include<iostream> #include<cstdio> #include<cstring> #include<algor ...
- 洛谷 深基 第4部分 基础数学与数论(19-21课)
洛谷 深基 第4部分 基础数学与数论 第19章 位运算与进制转换 P1143 进制转换 https://www.luogu.com.cn/problem/P1143 洛谷P1143 进制转换的Pyt ...
- 洛谷 - 试炼场(全部题目备份)
整理的算法模板合集: ACM模板 目录 1.新手村 1 - 1 洛谷的第一个任务 1 - 2 顺序与分支 1 - 3 循环!循环!循环! 1 - 4 数组 1 - 5 简单字符串 1 - 6 过程函数 ...
- 洛谷-题解 P2672 【推销员】
独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...
- 洛谷 P1142 轰炸
洛谷 P1142 轰炸 题目描述 "我该怎么办?"飞行员klux向你求助. 事实上,klux面对的是一个很简单的问题,但是他实在太菜了. klux要想轰炸某个区域内的一些地方,它们 ...
最新文章
- python的业务场景_python| Binlog务应用场景
- 什么是野指针和内存泄露?如何避免野指针
- Redis DeskTop Manager 使用教程
- 华为机试——提取不重复的整数
- 数据分析项目实战:大型商场销售预测(带你挤进比赛前100名)
- python基础--面向对象初始
- win7 兼容 因特尔十代_高配主板想用win7咋办 Intel10代CPU配上驱动总裁玩转win7
- 计算机打印怎样添加PDF格式,电脑添加PDF虚拟打印机怎么将文件打印成PDF
- H.265 SAO技术
- 一人有限责任公司章程范本
- 强烈推荐:创业起步 八种赢利模式
- C盘系统文件提示损坏怎么办?系统文件损坏怎么修复
- FFT 采样频率和采样点数的选取
- linux 系统编程--标准IO-缓存
- 2016理数全国卷 T21
- 计算机图片颜色是红色怎么办,电脑变色是怎么回事?(有图片)
- 近期数学杯赛汇总,哪个含金量高?
- m4a怎么转换成mp3
- graphviz基本使用及常见问题
- 月均200wUP主活跃的B站涨粉密码是什么?
热门文章
- TP-Link无线网卡一对多的桥接
- starting mysql. success!_启动mysql报错解决问题过程
- Java黑皮书课后题第7章:7.8(求数组的平均值)使用下面的方法头编写两个重载的方法,返回数组的平均数。编写一个测试程序,提示用户输入10个double型值,然后调用这个方法显示平均值
- oracle里有limit怎么用,[ORACLE]ORACLE 实现mysql中的limit 功能
- 克鲁斯卡尔(Kruskal)算法求最小生成树
- cocos creator基础-创建WX开放域遇到的问题
- 【poj1742】 Coins
- 安装laravel5.1项目命令
- thinkphp如果表名有下划线需要用Model
- Eclipse Mylyn成为顶级项目