关于动态规划【0-1背包思想在实际问题中是怎么转化的?】

目录

一、两道例题

二、转化的共同点


一、两道例题

例1、力扣416.分割等和子集

例2、力扣1049.最后一块石头的重量II

二、转化的共同点

1、递推公式

纯粹的0-1背包问题的递推公式是:

dpj = max(dpj,dpj-weight\[i]+valuei); // max里面放的是"取"或"不取"当前物品i,这两种情况;

【这两个实际0-1背包问题的应用,都有一个共同点就是:它们的数组里的值就是物品的重量和价值】

所以转化以后的递推公式是:

dpj = max(dpj,dpj-nums\[i]+numsi);

【0-1背包问题要解决的就是【背包最大能装的重量、每个物品的重量、每个物品的价值】

问:背包最多能装多少价值

所以,第二个共同点是定义背包最大能装的重量。】

2、背包最大能装质量

纯粹的0-1背包问题的最大能装重量已知

(由题目就能判断出)

转化为实际0-1背包问题的应用时,要先分析后定义

(例1、力扣416.分割等和子集。定义背包最大能装的重量为:数组全部数值总和的一半sum/2)

(例2、力扣1049.最后一块石头的重量II。定义背包最大能装的重量为:数组全部数值总和的一半 sum/2 )(这里 sum/2 是向下取整)

相关推荐
lvwangshu7 分钟前
P6534 [COCI 2015/2016 #1] UZASTOPNI 等差树列 题解
动态规划·图论·题解·性质题
Tongsr28 分钟前
别只混淆代码:用 Kaleido 加固整个 Android Release AAB
前端·算法·github
高亦真29 分钟前
今天是学习嵌入式的第34天
linux·学习·算法
飞Link2 小时前
动作方法中的分割与过度分割方法全解析(含代码实战与踩坑案例)
人工智能·python·算法·计算机视觉
张宇Joaquin2 小时前
鲲鹏统一并行加速库KUPL--异步数据拷贝
线性代数·算法·矩阵·numpy
GlobalInfo2 小时前
创新不是追逐热点,是在变化中建立长期竞争力
大数据·算法
lvwangshu2 小时前
线性代数基础 Linear Algebra Basics
数学·算法
ZhouDevin3 小时前
算法论文/数据集5——AlignPrune(CVPR2026)基于样本损失时间序列精确识别噪声样本
算法
十铭忘4 小时前
HMM(隐马尔可夫模型)的理解7——Baum–Welch 算法
人工智能·算法
明月_清风4 小时前
十大经典排序算法 Go 实现全解:从入门到面试通关
后端·算法·排序算法