夕拾算法进阶篇:18)装箱问题 (01背包_动态规划DP)
来源:互联网 发布:软件开发计划书 编辑:程序博客网 时间:2024/05/02 00:04
问题描述
有一个箱子的容量为V(V为正整数,且满足0≤V≤20000),同时有n件物品(体积值为正整数)要求从n件物品中,选取若干装入箱内,使箱子的剩余空间最小。
题目来源:http://www.codeup.cn/problem.php?cid=100000631&pid=0
有一个箱子的容量为V(V为正整数,且满足0≤V≤20000),同时有n件物品(体积值为正整数)要求从n件物品中,选取若干装入箱内,使箱子的剩余空间最小。
输入
1行整数,第1个数表示箱子的容量,第2个数表示有n件物品,后面n个数分别表示这n件 物品各自的体积。
输出
1个整数,表示箱子剩余空间。
输入样例24 6 8 3 12 7 9 7
输出样例0
这个题应该是01背包的简单应用,但注意这里没有明确给出物品的价值。题目要求使箱子的剩余空间最小,也就是说使是放入物品的总体积最大。物品的体积在此等价于物品的价值。因此其状态转移方程如下:
dp[i][v]=max{dp[i-1][v],dp[i-1][v-w[i]]+w[i]} (1=<i<=n,w[i]<=v<=V)
在代码中,使用一维的形式如下:
#include<iostream>#include<algorithm> using namespace std;const int M=20002; int dp[M];int main(){int m,n,i,v,w;cin>>m>>n;for(i=0;i<n;i++){cin>>w;for(v=m;v>=w;v--){dp[v]=max(dp[v],dp[v-w]+w);}}cout<<m-dp[m]<<endl;}
题目来源:http://www.codeup.cn/problem.php?cid=100000631&pid=0
0 0
- 夕拾算法进阶篇:18)装箱问题 (01背包_动态规划DP)
- 夕拾算法进阶篇:19)采药 (01背包_动态规划DP)
- 夕拾算法进阶篇:17)01背包和完全背包问题 (动态规划DP)
- 夕拾算法进阶篇:20)货币系统 (完全背包_动态规划DP)
- 算法_动态规划_二维01背包问题
- 算法进阶之动态规划-01背包问题
- 蓝桥杯 ALGO-21算法训练 装箱问题(动态规划,01背包)
- Vijos P1133 装箱问题(动态规划,01背包,NOIP)
- 背包型动态规划1014装箱问题
- 背包型动态规划 装箱问题
- 01背包问题(动态规划DP)
- 01背包问题--dp动态规划
- 01背包问题(动态规划DP)
- 动态规划_背包问题
- 【动态规划】背包问题 - dp
- DP(动态规划)背包问题
- 五、算法_动态规划_背包01
- 夕拾算法进阶篇:12)出栈序列统计(动态规划DP)
- 微信小程序之MaterialDesign(三)-- SnackBar
- 苹果
- C++ 输入与输出
- cmd中Telnet 127.0.0.1 8080 什么时候能够正常建立连接呢?
- 设计-架构资料
- 夕拾算法进阶篇:18)装箱问题 (01背包_动态规划DP)
- NLP技能需求
- logstash 贪婪匹配
- (淘宝无限适配)手机端rem布局详解
- LeetCode之326 Power of Three
- 宿主机程序访问虚拟机HDFS
- Linux终端下nmon监控工具
- 网管的自我修养-工具准备
- 什么是WAF防护?