DP
文章平均质量分 96
DP=动态规划=我不会,长大后再学……
cwplh
梦想终将引领着你,走向万丈光芒。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
寒假学习笔记【匠心之作,图文并茂】——1.19树的重心、直径、树形 DP
很简单,我们只需要用一个 dfs,然后从根节点开始往下搜,然后搜它的子树的大小,再把自身的大小加上它子树的大小表示这棵树总的大小,然后取子树大小中的最大值,最后更新答案。(这里以及下文中的「子树」若无特殊说明都是指无根树的子树,即包括「向上」的那棵子树,并且不包括整棵树自身。我们这样思考:假设我现在把根转移给了我的子节点,那么被我转移了的那个子节点的总深度就少了。为根节点往下的总的点数),而其他的子树的总深度就加上了。现在应该就明白了重心的定义了吧。为根的子树大小(即子树上结点的个数,包括根结点)。原创 2025-02-18 16:44:52 · 1121 阅读 · 0 评论 -
DP大家族——关于DP的梳理
本文总结了动态规划(DP)的基本概念和实现方法,包括一维和二维DP的应用。DP的核心思想是利用已知状态推导新状态,主要实现方式为递推和递归(记忆化搜索)。文章通过斐波那契数列、最大连续子序列和(一维DP)、最长上升子序列(LIS)及其优化方法,以及二维DP中的“马拦过河卒”问题等经典例题,详细讲解了DP的解题思路和优化技巧。此外,还介绍了空间优化方法如滚动数组,并展示了不同场景下DP的具体应用,帮助读者逐步掌握动态规划的基础知识和解题策略。原创 2025-08-25 19:44:28 · 638 阅读 · 0 评论 -
状压 DP 详解
状压 DP 其实约等于一个 DP 的小技巧,一般应用在处理一个或多个集合的问题中(因为状压 DP 的下标就是一个集合),而且在nnn太大的时候建议不要使用这种方法。(如果你不懂,那么就继续往下看。好吧你本来就不懂。原创 2025-05-02 22:09:57 · 1161 阅读 · 0 评论 -
数位 DP 详解
数位 DP 是一种用于数字数位统计的 DP,是一种简单的DP 套路题。(其实一点都不简单……)原创 2025-04-26 14:52:40 · 1223 阅读 · 0 评论 -
背包 DP 详解
按照我们之前的状态转移方程,我们应该拿原本的旧的状态来更新新的状态,但现在我们却拿我们计算好了的新的状态来更新更新的状态,这是完全不符合的,而倒过来循环正好就能避免这种事情的发生。比如说上面的状态转移方程,我们会发现 DP 的第一维只与当前状态与上一状态有关,而与其他的无关,所以其它空间就是被浪费了的,所以我们只需要把第一维开个。背包 DP,说白了就是往一个背包里扔东西,求最后的最大价值是多少,一般分为了三种:01 背包、完全背包和多重背包。,这可是一个极其庞大的数字,这是我们就要请上我们的滚动背包!原创 2025-04-19 22:31:13 · 1166 阅读 · 0 评论 -
区间 DP 详解
每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻。试找出一种合理的方法,使总的代价最小,并输出最小代价。分割型,指把一个区间内的几项分开拆成一份一份的,再全部合起来就是当前答案,可以理解为合并型的另一种(合并型详见下面),它的时间复杂度一般为。合并型,一般指把这一个区间内的相邻两项合在一起,每次代价为这两项的和,求最小代价。呗),但这种类型很少见,我基本翻遍了全网才找到了这一道题,其余的基本都是第一种,所以各位同学终点记第一种就行,第二种做一个拓展。原创 2025-04-08 17:19:10 · 1316 阅读 · 0 评论 -
DP 入门
或者是数组(建议用数组,因为后面还要二分)保存当前的 LIS,那么一个点如果大于当前的队尾,就可以直接和前面的子序列连上,如果不是,那么就找到最后一个小于它的,因为这样前面的序列就可以更小,更符合后面的发展,而因为整个数组是有序的,所以这个过程我们可以用二分来解决。首先我们可以与上一个连续子序列和连在一起,但只能是上一个点的,也可以与之前的断开,自己单独做一个子序列,然后在这两个之间做个选择就行了,由此我们得到了状态转移方程(点有⼀个对⽅的⻢,该⻢所在的点和所有跳跃⼀步可达的点称为对⽅⻢的控制点。原创 2025-04-12 09:38:18 · 1102 阅读 · 0 评论
分享