背包系列第五篇----完全背包(求解最大价值时背包的物品)
发布日期:2021-10-03 20:32:34
浏览次数:2
分类:技术文章
本文共 929 字,大约阅读时间需要 3 分钟。
一:问题
完全背包问题描述:一个容量为V的背包。现在有N种物品,每种物品有无数个,每种物品的体积是C1,C2,…,Cn,对应的每种的价值是W1,W2,…,Wn.。试问,在不超过背包容量的情况下,物品装入背包的最大价值?
在此基础上,如何求出背包内的物品?
二:分析理解
和背包系列的第二篇相似,需要设置一个path[ ][ ]保存路径。
三:代码
#include四:数据测试#include using namespace std;#define N 6#define V 10 //背包容量int w[N + 1] = { 0,2,3,1,4,6,5 }; //6个物品的价值,第一个0除外int v[N + 1] = { 0,5,6,5,1,19,7 }; //6个物品的体积,第一个0除外int dp[V + 5];int path[N + 5][V + 5]; //初始置0int main(){ for (int i = 1; i <= N; i++) { for (int j = v[i]; j <= V; j++) { path[i][j] = 0; if (dp[j] < dp[j - v[i]] + w[i]) { dp[j] = dp[j - v[i]] + w[i]; path[i][j] = 1; } } } printf("最大价值是:%d\n", dp[V]); printf("此时背包里的物品价值分别是:"); int i = N;//N个物品 int j = V;//背包容量是V while (i > 0 && j > 0) { if (path[i][j] == 1) { printf("%d ", w[i]); j -= v[i]; } else //注意此处,和第二篇的不同之处 i--; } printf("\n"); return 0;}
返回背包系列目录--->
转载地址:https://blog.csdn.net/LaoJiu_/article/details/51285830 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年03月23日 15时44分40秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
LeetCode题解(1122):数组的相对排序(Python)
2019-04-26
LeetCode题解(1128):等价多米诺骨牌对的数量(Python)
2019-04-26
LeetCode题解(1137):计算斐波那契数列(Python)
2019-04-26
LeetCode题解(1154):判断日期在一年中的第几天(Python)
2019-04-26
LeetCode题解(1160):判断可由指定字母拼写的所有单词总长(Python)
2019-04-26
LeetCode题解(1170):比较字符串最小字母的出现频次(Python)
2019-04-26
LeetCode题解(1175):质数排列(Python)
2019-04-26
LeetCode题解(1179):重新格式化部门表(SQL)
2019-04-26
LeetCode题解(1184):公交站间的距离(Python)
2019-04-26
LeetCode题解(1185):依据日期判断是星期几(Python)
2019-04-26
LeetCode题解(1422):分割字符串的最大得分(Python)
2019-04-26
LeetCode题解(1436):旅行终点站-寻找循环的终点(Python)
2019-04-26
H5+CSS前端特效源代码:可旋转动态日文片假名
2019-04-26
python程序没有报错但是运行没有任何结果怎么办?
2019-04-26
简单说一说MySQL中drop、delete与truncate的区别?
2019-04-26
InnoDB与MyISAM的区别
2019-04-26
思科 Packet Tracer 实验六 RIP路由协议基本配置
2019-04-26
计算机网络实验七:DHCP基本配置
2019-04-26
计算机网络实验八:思科NAT的基本配置
2019-04-26
三郎数据结构算法学习笔记:单向环形链表约瑟夫问题
2019-04-26