
dp
文章平均质量分 73
oj
Ypuyu
Ypuyu
展开
-
[Hdp] lc552. 学生出勤记录 II(dp+递推+状态定义+状态转移+向前转移+好题)
一道正常的线性dp 问题吧,状态定义和转移都不太难。分类讨论三种情况就行了。看到 y 总写了一个根据当前状态向前进行状态转移的方法,感觉还是值得记录一下的。避免某些情况下比较难写。可以对比下常规的状态转移方式和本次的状态转移方式,体会一下区别。包括这个代码实现也是,细节点在于 i<n 的,因为在 i=n-1 时,会递推出来 i+1=n 的这一项状态值,所以也能算出结果。另外也贴一下普通的状态转移代码,体会一下两者不同之处。原创 2024-08-19 01:12:39 · 495 阅读 · 0 评论 -
[线性dp] aw3583. 整数分组(线性dp+dp基础+CF1133E)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:3583. 整数分组2. 题目解析被昨天的贪心题目干扰,以为这也是个贪心题,结果就爆炸了。贪心思路: 排序,每段不相交,选择最长的 k 段即可。过了所有样例,但是结果还是错了。贪心过于侥幸了。看下面笔记的反例即可:这个 dp 从状态定义及转移都没有啥难度,但是中间的性质分析,以及这样的状态转移为何正确是重要的,困难的。 为什么针对第 i 个数选的状态转移需要尽可能大?为什么答案可以直接返回 f[n][k]。这都是需要思考、证明的!时原创 2021-05-28 23:53:29 · 127 阅读 · 0 评论 -
[Hdp] lc1787. 使所有区间的异或结果为零(线性dp+贪心+暴力到dp+难题+好题+思维)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:1787. 使所有区间的异或结果为零2. 题目解析依旧是自闭的一天…连续四天,四道 hard。本题按照 dp 分类的思想,在其中又贪心套 dp 可还行。看一下是怎么从暴力 dp 优化到贪心+ dp 的,十分有价值。以下是学习笔记:容易找到性质,得到周期性,得到要将每一列数变成一样的。不考虑异或和为 0 的话就直接找每列的众数即可。考虑异或和为 0 的话,就得考虑用 dp 了,f[i][j] 为前 i 列异或和为 j 的最小操作原创 2021-05-25 13:11:29 · 141 阅读 · 1 评论 -
[线性dp] aw3549. 最长非递减子序列(线性dp+算法优化+思维)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:3549. 最长非递减子序列抽风的 dp 题解不错,可以参考~2. 题目解析线性 dp、思维题。首先看到了 1e6 的数据范围,故确定时间应该是 O(n) 的算法,故确定是个思维题,故从思考到放弃…没看清题意,只有 1 或 2 出现,是子序列不是子串…思路:显然,最优解一定满足 1111222211112222 这种形式。很明显,我们可以将其分为四段来看。我们可以以 s1、s2、s3、s4 来分别表示从最优解起点到这四段末尾的原创 2021-05-23 11:17:38 · 221 阅读 · 0 评论 -
[环形dp] aw435. 传球游戏(基础dp+环形dp+递推)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:435. 传球游戏2. 题目解析思路:状态定义: f[i][j] 表示传了 i 次后,球落在第 j 个小朋友手上的方案总数。答案: f[m][0] 即为答案,小朋友编号从 0 开始。初始化: f[0][0] = 1; 表示球一开始在 1 号小朋友手上,1 次不传也是一种方案。状态转移: 考虑第 j 个小朋友球一定是从第 j-1、j+1 位小朋友手里传给他的,那么即有 f[i][j]=f[i-1][j-1]+f[i-1][j+1],成立原创 2021-05-05 16:44:26 · 172 阅读 · 0 评论 -
[Hdp] lc1473. 粉刷房子 III(dp基础+状态定义+状态转移)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:1473. 粉刷房子 III2. 题目解析是检验自己 dp 水平的一道好题。题目大致意思就是,给了一串房子,每个房子都要被涂色,若房子初始有颜色,则不能被重新涂色,每次涂色都有相应的涂色花费,相邻相同颜色的房子我们称其为一段颜色。求将房子涂成 t 段颜色后的最小花费。思路:显然需要维护三个状态,前 i 个房子被涂成 j 段,且第 i 个房子被涂成第 k 种颜色的花费。状态定义: f[i][j][k] 前 i 个房子被涂成 j 段,且第原创 2021-05-05 15:13:55 · 157 阅读 · 0 评论 -
[线性dp] 最强对手矩阵(牛客+线性dp+二维前缀和+代码优化+思维+好题)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:最强对手矩阵相关:[Edp] lc53. 最大子序和(dp+分治+算法优化+详细分析)知乎:最大子段和到最大子矩阵的一些思考LC 高分题解,特别棒:面试题 17.24. 最大子矩阵2. 题目解析非常非常经典的一道题目,最大子矩阵、最大子阵和等等…方法也是多种多样,简单罗列一下,规定行列分别为 n、mn、 mn、m暴力:O(n3m3)O(n^3 m^3)O(n3m3)二维前缀和:O(n2m2)O(n^2m^2)O(n2m2)原创 2021-04-21 14:18:39 · 263 阅读 · 0 评论 -
[Mdp] lc1824. 最少侧跳次数(线性dp+分层图最短路+周赛236_3)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:lc1824. 最少侧跳次数2. 题目解析拖了这么久才补题…思路:将位置分成 [0,n] 共 n+1 个,赛道分成 [0,2] 三个。f[i][j] 表示从 [0][1] 即 0 号位置,1 赛道,跳到 [i][j] 位置的最小侧跳步数。f[i][j] 由 f[i-1][k] 进行状态转移。但是需要注意的是,这里的 [i-1,k] 都是先往前跳一步,再在同赛道中进行侧跳。第一个代码一开始并没有考虑直接向前跳一步时前面是否为石头的情原创 2021-04-17 22:51:53 · 218 阅读 · 0 评论 -
[Mdp] lc5. 最长回文子串(枚举+中心拓展+区间dp+递推求解)
文章目录1. 题目来源2. 题目解析方法一:枚举1. 题目来源链接:lc5. 最长回文子串2. 题目解析方法一:枚举回文串一共有两种,即长度为奇数的回文串,长度为偶数的回文串。我们可以枚举回文串的中心(偶数长度回文串假想一个中心就行了),然后分别拿两个指针 l = i - 1,r = i + 1 向左右两边同时拓展,若 s[l]=s[r] 则,l --, r ++。一直进行该操作,直到不等或一方到达边界位置。我们针对每一个枚举位置 i,都考虑其两种情况,即偶数,奇数都考虑一遍,取个最大的就行了。原创 2020-12-13 17:19:40 · 277 阅读 · 0 评论 -
[线性dp] 编辑距离(模板题+编辑距离模型)
文章目录0. 前言1. 编辑距离模板题0. 前言编辑距离:很类似于 LCS 问题,状态表示十分类似。学习 dp 问题必备入门题了1. 编辑距离模板题902. 最短编辑距离重点: 线性 dp、LCS 问题及优化思路:状态定义:f[i][j] 所有将 a[1:i] 变成 b[1:j] 的操作次数的最小值状态转移:分类依据:分别三种方式操作 a 中的第 i 个字母,使得,a[1:i] 和 b[1:j] 匹配删除 a 的第 i 个字母,使得 a[1:i] 与 b[1:j] 匹配,原创 2020-11-10 23:08:56 · 477 阅读 · 0 评论