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

河南省建设厅网站官网重庆seo务

河南省建设厅网站官网,重庆seo务,wordpress数据录入平台,上海景点排名前十1、01背包 【模板】01背包_牛客题霸_牛客网 (nowcoder.com) 1、1可以不装满 背包问题本质上还是一个线性dp。对于物品还是从1选到n。 1、状态表示: 经验 + 题目要求: dp[i]表示:从前i个物品中选,所有选法中,能挑选出来的最大价值。 但是如果像这样表示dp的话,我们…

1、01背包

【模板】01背包_牛客题霸_牛客网 (nowcoder.com)

1、1可以不装满

背包问题本质上还是一个线性dp。对于物品还是从1选到n。

1、状态表示

经验 + 题目要求:

dp[i]表示:从前i个物品中选,所有选法中,能挑选出来的最大价值。

但是如果像这样表示dp的话,我们其实是无法解决问题的。

因为,考虑是否选取当前物品的时候,我们必须要考虑到当前背包的剩余容量,并且如果放入当前物品之后,还需要用到前面的dp状态。

所以应该:dp[i][j]:从前i个物品中挑选,总体积不超过j,所有选法中,能挑选出来的最大价值

2、状态转移方程

根据最后一步的状况,分情况讨论。

从1号物品,选择到i号物品。那么对于最后一个位置的i号物品,就是两种情况:选或不选

情况1:

不选i物品:那么尽管走到i,但是是从1 ~ i-1个物品中选取,并且此时j还是j。则dp[i][j] = dp[i-1][j]。

情况2:

选i物品:那么选上i物品后,就需要从1 ~ i-1物品中选取物品,但是此时不应该超过的体积 = j - w[i],w[i]代表i号物品的体积。那么此时dp[i][j] = v[i] + dp[i-1][j - w[i] ]。

但是对于选i物品,需要考虑当前j是否能够容纳i号物品,即判断是否有 j >= w[i]

即综上:dp[i][j] = max { dp[i-1][j] , v[i] + dp[i-1][ j-w[i] ] }。   

3、初始化

同样,我们多一行一列,方便填表。

保证第一行第一列正确:

第一列:j = 0,背包容量为0,那么此时最大价值0,则第一列0。

第一行:i = 0,0个物品,则最大价值为0,第一行0。

4、填表顺序

由状态转移方程可知:dp[i][j]受上方dp的状态影响,以及左上方dp状态的影响。

则从上往下填表即可。

5、返回值

dp[n][V]。

1、2、必须装满

1、状态表示

dp[i][j]表示:从前i个物品中选取,装满容量为j的背包,所有方法中,能挑选出的最大价值

2、状态转移方程

这里约定:如果无法从前i个物品中挑选,正好装满j容量背包的话,dp[i][j] = -1。

为什么不约定为0呢。

因为对于dp[0][0] = 0,表示没有物品挑选,但是也是装满了容量为0的背包,所以此时价值为0。这里就和dp[0][0]作出区分。

那么其实这里的状态转移方程仍然没变:

不选i:dp[i][j] = dp[i-1][j]。即无论dp[i-1][j]是否有挑选方法,都赋值给dp[i][j]。

选i:dp[i][j] = v[i] + dp[i-1][j - w[i] ]。但是这种情况必须判断两个东西:j - w[i] >= 0,并且dp[i-1][j - w[i] ]不等于-1。必须判断在j -w[i]的容量下,是否有挑选方法。不然,后面在max中,如果j -w[i]容量下没有挑选方法,但是仍然会取到v[i] + dp[i-1][j - w[i] ],因为v[i] + dp[i-1][j - w[i] ]肯定比-1大。

但是如果j -w[i]容量下没有挑选方法,那么整体也是没有挑选方法的。

dp[i][j] = max { dp[i-1][j] , v[i] + dp[i-1][ j-w[i] ] }。   

3、初始化

将dp[0][0] = 0。

第一行 为-1(因为没有物品,无法凑满体积为j的背包,j≠0)。

第一列 为0(不选物品,也是凑满了体积为0的背包)。

4、填表顺序不变

5、返回值不变

#include<iostream>
using namespace std;const int N = 1010;i
http://www.dtcms.com/a/469252.html

相关文章:

  • 【开题答辩全过程】以 北京房屋租赁数据分析与可视化为例,包含答辩的问题和答案
  • 什么身一什么网站建设网站开发毕设任务书
  • 【八股消消乐】手撕分布式协议和算法(基础篇)
  • Databend 九月月报:自增列 AUTOINCREMENT 与行级安全
  • Zenlayer 推出分布式推理平台,加速 AI 创新全球落地
  • 01-iptables防火墙安全
  • Docker存储技术全解析:分层与持久化
  • 分布式专题——39 RocketMQ客户端编程模型
  • 物联网二级平台设计与实现:从Home Assistant到JetLinks的设备协同架构实践
  • 分布式文件存储 RPC 服务实现
  • 在哪些软件上建设网站市场营销方案怎么做
  • 《小小梦魇3》今日发售!用UU远程手机躺玩通关
  • Jenkins Pipeline post指令详解
  • 系列文章<一>(从LED显示问题到非LED领域影像画质优化:揭秘跨领域的核心技术):从LED冬奥会、奥运会及春晚等大屏,到手机小屏,快来挖一挖里面都有什么
  • 泊松分布解题步骤
  • Postman API 测试使用指南:从入门到精通
  • VisualSVN-Server-2.5.26 TortoiseSVN-1.7.21
  • SVN 检出操作
  • 深度相机初探:立体视觉(Stereo Vision)、结构光(Structured Light)、TOF(Time of Flight,飞行时间)
  • SVN 生命周期
  • 武昌做网站公司互联网营销顾问是做什么的
  • 辉视融合服务器:强劲驱动电视信息发布,直播点播流畅运行,赋能高效传播
  • MyBatis-Spring-Boot快速上手指南
  • Linux运维实战:系统及服务管理(视频教程)
  • 服务器运维(四)服务器漏洞扫描工具与审查——东方仙化神期
  • SolidWorks服务器多人使用方案
  • 安卓手机app开发软件下载网站关键词优化效果
  • Redis中的RPOP、BRPOP、LPOP 和 BLPOP
  • R语言学习
  • 【C++】C++11 新特性详解(下)