关于动态规划【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 是向下取整)

相关推荐
倒头就睡的小比特2 天前
算法竞赛C++常用的STL
c++·算法
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
猎头南楼2 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
旖旎夜光2 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
wzdark2 天前
大规模并行计算中的负载均衡算法研究4
算法
Because_of_Her12 天前
并查集-听课笔记
笔记·算法·并查集
码流子2 天前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环
大数据·人工智能·物联网·算法·架构
another heaven2 天前
【算法/C++ MD5算法能否逆解码?原理、C++实现与同类哈希算法对比】
c++·算法·哈希算法
wzdark2 天前
从算法设计模式看编程思维的抽象能力4
算法
2601_962218612 天前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点
大数据·数据库·人工智能·python·算法