当前位置: 首页 > news >正文

代码随想录 第九章 动态规划part03 01背包问题 二维

01背包问题 二维

#include <bits/stdc++.h>
using namespace std;
int main(){int n, bagWeight;cin >> n >> bagWeight;std::vector<int> value(n, 0);std::vector<int> weight(n, 0);for (int i = 0; i < n; i++) cin >> weight[i];for (int i = 0; i < n; i++) cin >> value[i];std::vector<vector<int>> result(n, vector <int>(bagWeight+1, 0));for (int i = weight[0]; i <= bagWeight; i++) result[0][i] = value[0];for (int i = 1; i < n; i++){for(int j = 0; j <= bagWeight; j++){if(j<weight[i]) result[i][j]=result[i-1][j];if(j-weight[i]>=0) result[i][j] = max(result[i - 1][j], result[i-1][j - weight[i]] + value[i]);else result[i][j]=result[i-1][j];}}cout << result[n - 1][bagWeight];return 0;
}

这题动态规划数组的计算方式会有一些难以理解,不过如果按照随想录所给的思路在纸上推导一次就会清晰很多。在计算一个位置的值时又两种可能,一时当前剩余空间放的下,一种就是放不下,在保证动态规划数组计算过的值为最大价值时,在放不下的情况下,最大值就是用空间下上一行的值,而放的下的情况意味着需要去能给出那么多空间余量的方案中找,而在数组中,如果当前物品占空间为k,那么上一行的少k列位置的方案一定能给出k的余量,那么动态规划数组的计算过程也就明确了。

代码随想录 第九章 动态规划part03

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 力扣100题——栈和堆
  • 【GNSS】PPPH软件操作手册翻译
  • CATH标识符解读
  • 记录近期iOS开发几个报错及解决方案
  • sql中的APPLY 和 LATERAL
  • 生成式人工智能在新加坡的发展现状和地位
  • 文档大模型,能否真正解决非结构化数据难题
  • 深入理解java并发编程之aqs框架
  • Java工具插件
  • Open CASCADE学习|通过指定点的曲线
  • Vue3+TypeScript二次封装axios
  • suid提权的环境搭建+反弹shell
  • 基于 ROS 的Terraform托管服务轻松部署Qwen-VL-Chat
  • 新书宣传:《量子安全:信息保护新纪元》
  • JavaScript高级——关于语句分号的问题
  • @angular/forms 源码解析之双向绑定
  • Fastjson的基本使用方法大全
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • Laravel 菜鸟晋级之路
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Redis的resp协议
  • spring cloud gateway 源码解析(4)跨域问题处理
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 面试遇到的一些题
  • 前端代码风格自动化系列(二)之Commitlint
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 原生js练习题---第五课
  • 源码安装memcached和php memcache扩展
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 如何在招聘中考核.NET架构师
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • # Redis 入门到精通(七)-- redis 删除策略
  • #07【面试问题整理】嵌入式软件工程师
  • (5)STL算法之复制
  • (LeetCode) T14. Longest Common Prefix
  • (代码示例)使用setTimeout来延迟加载JS脚本文件
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (论文阅读11/100)Fast R-CNN
  • (每日一问)设计模式:设计模式的原则与分类——如何提升代码质量?
  • (三分钟)速览传统边缘检测算子
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • .net Application的目录
  • .Net Core中Quartz的使用方法
  • .Net--CLS,CTS,CLI,BCL,FCL
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .NET连接数据库方式
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .sh 的运行
  • :=
  • @font-face 用字体画图标
  • @property python知乎_Python3基础之:property
  • [ 环境搭建篇 ] 安装 java 环境并配置环境变量(附 JDK1.8 安装包)
  • [].shift.call( arguments ) 和 [].slice.call( arguments )