当前位置:网站首页>动态规划总括
动态规划总括
2022-08-04 05:14:00 【empty__barrel】
如果某一问题有很多重叠子问题,使用动态规划是最有效的。
所以动态规划中每一个状态一定是由上一个状态推导出来的由此来判断是否使用动态规划
动规是由前一个状态推导出来的,而贪心是局部直接选最优的
动态规划中dp[j]是由dp[j-weight[i]]推导出来的,然后取max(dp[j], dp[j - weight[i]] + value[i])。
但如果是贪心呢,每次拿物品选一个最大的或者最小的就完事了,和上一个状态没有关系。
对于动态规划问题,我将拆解为如下五步曲:
- 确定dp数组(dp table)以及下标的含义
- 确定递推公式
- dp数组如何初始化
- 确定遍历顺序
- 举例推导dp数组
动态规划应该如何debug:
找问题的最好方式就是把dp数组打印出来,看看是不是和自己预先推导的哪里不一样。
如果打印出来和自己预先模拟推导是一样的,那么就是自己的递归公式、初始化或者遍历顺序有问题了。
如果和自己预先模拟推导的不一样,那么就是代码实现细节有问题。
解题:
首先思考这是一个动态规划的题目,那么当前值是由前面的值表示出来的,怎么表示呢?不清楚。此时就应该通过答案反推过程同时在此过程中要始终记得当前值是可以由前面的值表示的。
dp[ n ] = 某某+dp[ i ]
dp[ i] = 某某+dp[ i] +/-/*/÷ dp[ j ]
边栏推荐
- 信息学奥赛一本通 1312:【例3.4】昆虫繁殖
- C专家编程 第4章 令人震惊的事实:数组和指针并不相同 4.2 我的代码为什么无法运行
- Tactile intelligent sharing - SSD20X realizes upgrade display progress bar
- 3000字,一文带你搞懂机器学习!
- OpenGL绘制一个圆锥
- C专家编程 第5章 对链接的思考 5.3 函数库链接的5个特殊秘密
- 【21 Days Learning Challenge】Direct Insertion Sort
- 2023年PMP考试会用新版教材吗?回复来了!
- Hangdian Multi-School-Slipper- (tree map conversion + virtual point mapping)
- 小程序 + 电商,玩转新零售
猜你喜欢
随机推荐
【评价类模型】Topsis法(优劣解距离法)
Resolved error: npm WARN config global `--global`, `--local` are deprecated
C Expert Programming Chapter 4 The Shocking Fact: Arrays and pointers are not the same 4.4 Matching declarations to definitions
C Expert Programming Chapter 4 The Shocking Fact: Arrays and Pointers Are Not the Same 4.3 What is a Declaration and What is a Definition
注意!软件供应链安全挑战持续升级
Performance testing with Loadrunner
[Evaluation model] Topsis method (pros and cons distance method)
How to dynamically add script dependent scripts
【21天学习挑战赛】顺序查找
C专家编程 第4章 令人震惊的事实:数组和指针并不相同 4.4 使声明与定义相匹配
Converts XML tags to TXT format (voc conversion for yolo convenient training)
px、em、rem的区别
C专家编程 第5章 对链接的思考 5.3 函数库链接的5个特殊秘密
Simple operation of the file system
share总结
少年成就黑客,需要这些技能
败给“MySQL”的第60天,我重振旗鼓,四面拿下蚂蚁金服offer
SLSA 框架与软件供应链安全防护
Introduction and application of go module
高性能高可靠性高扩展性分布式防火墙架构









