动态规划(DP)
文章平均质量分 95
DP知识点和题目
wh233z
努力学习in……
展开
-
ST算法(Sparse Table,稀疏表)
ST表(Sparse Table)是一种用于高效处理区间查询的数据结构。它可以在O(1)的时间复杂度内回答某一区间的最值查询(最小值、最大值等)。ST表使用动态规划的思想,通过预处理的方式来快速计算出各个区间的最值。原创 2024-08-13 15:14:16 · 1399 阅读 · 0 评论 -
动态规划之——背包DP(完结篇)
本文讲分组背包、有依赖的背包、 背包问题求方案数以及背包问题求具体方案原创 2024-08-09 21:45:11 · 779 阅读 · 0 评论 -
动态规划之——背包DP(进阶篇)
多重背包也是 0-1 背包的一个变式,与 0-1 背包的区别在于每种物品有 k 个,而非一个。二进制优化是将个数进行拆分,那么我们有没有其他更快的方法呢?,可是不同的是选一个物品会消耗两种价值(容量、重量),从第二个物品开始,每个物品的价值跟物品的重量w有关系。比如苹果总数为50,如果我们一个个拿,需要拿50次。那么我们可以在01背包的基础上,多加上一重循环,假设说这时候有6个箱子,这6个箱子的容量为。为什么没有1呢,因为我们可选的数量为3,如果套队列优化的多重背包的模板,很明显,这个代码的时间复杂度为。原创 2024-08-06 19:57:21 · 1336 阅读 · 2 评论 -
动态规划之——背包DP(入门篇)
而我们从后往前遍历,后面的容量不可能比原来的容量大,因此也就不会出现上面这种情况。(解释:新的状态每次都会覆盖原状态,因此每次都跟自己比较大小即可)本文只讲了01背包和完全背包,至于其他背包问题后续补充。,因此我们只需要保留一维,将新的状态覆盖在原状态即可。到此,模板题讲完了,接下来我们来看一道01应用题。算出左脑最多花的时间,ans加上总时间减去。对于上述例题来说,这个代码是过不去的。我们可以先从后往前枚举,在当前。,我们可以将上述步骤改为递归。,与01背包不同的是,这题的。观察式子,我们发现当前状态。原创 2024-08-05 13:55:35 · 1371 阅读 · 0 评论 -
2435. 矩阵中和能被 K 整除的路径(leetcode)
看题解看了半天都看不懂,看了视频也看了好久······,最后还是自己手动模拟才懂的,大佬们写的代码非常好,自己根本想不到该如何用代码实现出来,还是得多刷题,多见一些新题型。原创 2024-08-04 17:17:39 · 1256 阅读 · 0 评论 -
何为动态规划
动态规划(英语:Dynamic programming,简称 DP),通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题。简单来说,动态规划其实就是,给定一个问题,我们把它拆成一个个子问题,直到子问题可以直接解决。然后呢,把子问题答案保存起来,以减少重复计算。再根据子问题答案反推,得出原问题解的一种方法(类似于递推)。原创 2024-04-01 22:24:20 · 968 阅读 · 0 评论 -
动态规划之——线性DP(入门篇)
线性动态规划,是较常见的一类动态规划问题,其是在线性结构上进行状态转移,这类问题不像背包问题、区间DP等有固定的模板。线性动态规划的目标函数为特定变量的线性函数,约束是这些变量的线性不等式或等式,目的是求目标函数的最大值或最小值。原创 2024-07-30 20:12:32 · 1549 阅读 · 2 评论