输出格式:
输出装入背包中物品的最大总价值。
输入样例:
在这里给出一组输入。例如:
5 10
2 6
2 3
6 5
5 4
4 6
结尾无空行
输出样例:
在这里给出相应的输出。例如:
15
二:思路:
====================================================================
思路:关于如何判断是动态 规划,我个人的理解是
如果所求取的结果是(根据某种规则)跳跃性的挑选数据 那么可以判断为动态规划
本题思路来源 依然是 《算法图解》一书
将背包的容量从1开始展开(设为列),将物品按行展开(设为行),
用二维数组存储 不同容量下的最大价值,每一行只能算上本行和前面的行的物品,二维数组就是网格化的,将一个大问题分解成小问题,
那么其本质就是(递推方程)
:(规定容量的基础上)上一个单元格的最大价值 VS(当前商品的价值+
剩余容量所存储的价值)
三:来兄弟干了这杯代码
==========================================================================
/*
思路:关于如何判断是动态 规划,我个人的理解是
如果所求取的结果是(根据某种规则)跳跃性的挑选数据 那么可以判断为动态规划
本题思路来源 依然是 《算法图解》一书
将背包的容量从1开始展开(设为列),将物品按行展开(设为行),
用二维数组存储 不同容量下的最大价值,每一行只能算上本行和前面的行的物品
那么其本质就是(递推方程)
:(规定容量的基础上)上一个单元格的最大价值 VS(当前商品的价值+
剩余容量所存储的价值)
*/
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,c;
vectorv1,v2;//用v1来存重量,v2来存价值
cin >> n >> c;
int MaxVule[n+1][c+1];//物品件为行,背包容量为列(1,2,…c)
//将vector容器当中的0为位置占住(因为在二维数组中是从下标为1的开始的)
int a1 = 1,a2 = 2;
v1.push_back(a1);
v2.push_back(a2);
for(int i = 1; i <= n; i++){
int num1,num2;
cin >> num1 >> num2;
v1.push_back(num1);
v2.push_back(num2);
}
//二维数组初始化
for(int i = 0; i < n+1; i++){
for(int j = 0; j < c+1; j++){
MaxVule[i][j] = 0;
}
}
// for(int i = 1; i <= n; i++)
// cout << v1[i] << ’ ';
//创建的网格中开始更新数据
for(int i = 1; i < n+1; i++){
for(int j = 1; j < c+1; j++){
if(i == 1){
if(v1[i] <= j){
MaxVule[i][j] = v2[i];
}
}else{//比较上一个单元格的价值 如果比其大就更新
//计算本单元格的价值 = 商品的价值 + 剩余空间的价值
int value = j - v1[i];
if(value >= 0) {
int temp = v2[i] + MaxVule[i-1][value];//注意i-1 因为本行已经装进商品了不可重复装入
if(MaxVule[i-1][j] < temp){
MaxVule[i][j] = temp;
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
最后
如果觉得本文对你有帮助的话,不妨给我点个赞,关注一下吧!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
如果觉得本文对你有帮助的话,不妨给我点个赞,关注一下吧!
[外链图片转存中…(img-N1ib2wiv-1713303035192)]
[外链图片转存中…(img-DYfiLeUJ-1713303035192)]文章来源:https://www.toymoban.com/news/detail-856562.html
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!文章来源地址https://www.toymoban.com/news/detail-856562.html
到了这里,关于7-6 0-1背包 (20 分)(思路加详解+网格做法+动态规划)Come Baby !!!!!!!!!!!!!!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!