01背包问题

容量为10的背包,有5种物品,每种物品只有一个,其重量分别为5,4,3,2,1,其价值分别为1,2,3,4,5。
设计算法,实现背包内物品价值最大。
代码如下(输出14)

#include <iostream>
#include<algorithm>using namespace std;int main()
{int total_weight = 10;int w[6] = { 0,5,4,3,2,1};int v[6] = { 0,1,2,3,4,5};int dp[11] = { 0 };for (int i = 1; i <= 5; i++)for (int j = 10; j >= w[i]; j--)dp[j] = max(dp[j], dp[j - w[i]] + v[i]);cout << "总的价值为: " << dp[10] << endl;return 0;
}

完全背包问题

容量为10的背包,有5种物品,每种物品数量无限,其重量分别为5,4,3,2,1,其价值分别为1,2,3,4,5。
设计算法,实现背包内物品价值最大。
代码如下(输出50)

#include <iostream>
#include<algorithm>using namespace std;int main()
{int total_weight = 10;int w[6] = { 0,5,4,3,2,1};int v[6] = { 0,1,2,3,4,5};int dp[11] = { 0 };for (int i = 1; i <= 5; i++)for (int j = w[i]; j <= 10;j++)dp[j] = max(dp[j],dp[j - w[i]] + v[i]);cout << "总的价值为: " << dp[10] << endl;return 0;
}

多重背包问题

容量为10的背包,有5种物品,每种物品数量分别为1,2,1,2,1,其重量分别为5,4,3,2,1,其价值分别为1,2,3,4,5。
设计算法,实现背包内物品价值最大。
代码如下(输出16)

#include <iostream>
#include<algorithm>using namespace std;int main()
{int total_weight = 10;int w[6] = { 0,5,4,3,2,1 };int v[6] = { 0,1,2,3,4,5 };int cot[6] = { 0,1,2,1,2,1 };int dp[11] = { 0 };for (int i = 1; i <= 5; i++)for (int k = 1; k <= cot[i];k++)for (int j = 10; j >= w[i]; j--)dp[j] = max(dp[j], dp[j - w[i]] + v[i]);cout << "总的价值为: " << dp[10] << endl;return 0;
}

01背包、完全背包、多重背包问题的C++实现相关推荐

  1. 经典背包问题 01背包+完全背包+多重背包

    01 背包 有n 种不同的物品,每个物品有两个属性,size 体积,value 价值,现在给一个容量为 w 的背包,问最多可带走多少价值的物品. int f[w+1]; //f[x] 表示背包容量为x ...

  2. 01背包、完全背包、多重背包问题的C++实现及路径记录

    这里主要实现路径记录,只求最值问题移步 01背包.完全背包.多重背包问题的C++实现 以下均打印输出路径,即装入背包的物品序号,和最大值. 01背包问题 #include <iostream&g ...

  3. 背包问题——01背包/完全背包/多重背包

    背包问题是典型的动态规划问题,本文将对典型的背包问题进行总结. 0-1背包问题 有 N 件物品和一个容量是 V 的背包.每件物品只能使用一次. 第 i 件物品的体积是 vi,价值是 wi. 求解将哪些 ...

  4. 动态规划之背包问题---01背包---完全背包---多重背包

    本篇博客是基于Carl大佬的刷题笔记 (代码随想录) 进行总结的 另外加入了我自己的一些整理,特此记录,以防遗忘 几种在面试中常见的背包,其关系如下: 通过这个图,可以很清晰分清这几种常见背包之间的关 ...

  5. 背包问题-【01背包】【完全背包】【多重背包】【多限定条件背包】

    背包问题 给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高. 可参考https://www.cnblogs.com/-guz/p/9866118.h ...

  6. 【python】一篇讲透背包问题(01背包 完全背包 多重背包 二维费用背包)

    面对背包问题,有一个很重要的方程式:状态转移方程式 所以每一种背包问题我都会给出状态转移方程式 #01背包 什么是01背包型问题? 先给大家感受一下01背包型问题: 给定n种物品和一背包.物品i的重量 ...

  7. 古有陈天华万字血书抗沙俄,今有本剧蒻万字背包虐dp(01,完全,多重,分组,混合等各种背包详解 + 板子题+ 奇奇怪怪滴变式题)

    前言: 本文介绍了01背包.完全背包.多重背包.混合背包.分组背包等背包,并对其进行透彻的剖析,并附上了板子题,供您白嫖,以及一些奇葩变式,颇有意思,供你琢磨玩弄.此外绝大部分题都有二维数组和滚动数组 ...

  8. 动态规划总结(01背包 完全背包 多重背包)

    动态规划总结(01背包 完全背包 多重背包) 一.学习资料 1.UVA DP 入门专题 2.夜深人静写算法(二) - 动态规划 3.算法之动态规划 4.什么是动态规划?动态规划的意义是什么? 5.01 ...

  9. java多重背包算法,【动态规划】多重背包问题

    说明 前面已经介绍完了01背包和完全背包,今天介绍最后一种背包问题--多重背包. 这个背包,听起来就很麻烦的样子.别慌,只要你理解了前面的两种背包问题,拿下多重背包简直小菜一碟. 如果没有看过前两篇0 ...

最新文章

  1. Linux上程序调试的基石(1)--ptrace
  2. 手把手教你玩转ARP包(二)
  3. Mybatis源码分析--Mapper接口的代理生成原理
  4. GPU Gems2 - 4 分段缓冲(Segment Buffering)
  5. layui导入模板数据_数据可视化图表 教程echarts,第一讲
  6. Node.js 工具模块
  7. jQuery重置表单2
  8. scope=“prototype”和scope=“session”
  9. 面向对象的软件开发方法
  10. 趋势linux版本杀毒软件,万万没想到,微软 Linux 版杀软来了
  11. 文曲星猜数游戏c语言带结果,文曲星猜数游戏 C实现
  12. (六)【模电】(基本放大电路)静态工作点的稳定
  13. Linux(CentOS)搭建redmine项目管理系统
  14. css 文本排版方向,古文式排版等
  15. TL437x-EVM评估板测试手册(2)
  16. DP算法:动态规划算法
  17. 以EOF结束输入 PTA 7-12 排序(数组)
  18. 微信第三方授权登录并在h5中发起支付
  19. 【Android开发】Android入门安装与使用教程——以Android Studio3.6.1为例
  20. Android jdk环境配置以及创建

热门文章

  1. JDK动态代理的实现原理
  2. 如何评价一个RPC框架的性能
  3. ExtJS4.2学习(17)表单基本输入控件Ext.form.Field(转)
  4. EF6 CodeFirst+Repository+Ninject+MVC4+EasyUI实践(九)
  5. ipc-rpc-xmlrpc
  6. .Net Core控制台应用加载读取Json配置文件
  7. 在ASP.NET Core 2.2 中创建 Web API并结合Swagger
  8. ST算法 Sliding Window algorithm template
  9. 翻译:TRUNCATE TABLE(已提交到MariaDB官方手册)
  10. 通用窗口类 Inventory Pro 2.1.2 Demo1(中)