dp
文章平均质量分 69
dp算法
说文科技
同名公众号【说文科技】,做有态度的研究。
展开
-
【算法竞赛刷题模板30】状态压缩dp题总结
动态规划的状态如果不能很清晰的表示,那么就需要考虑如何把复杂的状态存下来。通常可以考虑使用位图把这种信息存储,位图就是一个状态压缩。原创 2022-09-02 20:00:26 · 120 阅读 · 0 评论 -
【LeetCode】718. 最长重复子数组
使用动态规划解决这个问题,需要注意和最长子序列区分开。原创 2022-06-13 21:35:05 · 103 阅读 · 0 评论 -
【LeetCode】剑指 Offer II 020. 回文子字符串的个数
这题与之前的题稍有类似,但是又不太一样。本题需要使用区间dp的思想:即先判断小串是否是回文串,然后再基于小串的基础上,判断长度的串是否是回文串。【是有那么一点儿区间dp的想法在其中】...原创 2022-06-10 17:39:04 · 175 阅读 · 0 评论 -
【LeetCode】416. 分割等和子集
深搜代码过不了完整的测试用例。很明显这又是一道动态规划题。大意就是从固定候选集中判断是否能够组成一个数target。简直不就是0-1背包模板题嘛!只不过这里的数不可以重复取,同时用一个滚动数组减小空间的使用。.........原创 2022-06-06 23:39:22 · 106 阅读 · 0 评论 -
【LeetCode】剑指 Offer II 089. 房屋偷盗
简单的动态规划题原创 2022-04-09 16:29:54 · 363 阅读 · 0 评论 -
背包问题详解
详细分析背包问题。01背包问题比较简单,但是仍有很多需要注意的点,比如:为什么它可以避免同件物品放多次?j的遍历可以是从大到小的倒序吗?原创 2021-09-07 22:23:56 · 254 阅读 · 0 评论 -
【洛谷】P1203 [USACO1.1]坏掉的项链Broken Necklace
使用dp解决最长环形字符串问题,需要搞清楚分界点问题,同时使用str+=str的技巧来解决环形问题。原创 2021-08-28 16:17:49 · 449 阅读 · 0 评论 -
【洛谷】P1122 最大子树和
树型dp+递归的使用。能够很清晰的划分出子问题是解决dp问题的关键,而树形结构天然具备着很强的子问题属性。原创 2020-06-19 16:30:48 · 800 阅读 · 2 评论 -
【洛谷】P1107 [BJWC2008]雷涛的小猫
【洛谷】P1107 [BJWC2008]雷涛的小猫。本题的关键是如何降维?即如何将不必要的循环删除。同时仍然需要理解“抽象”对于算法题的重要!本题的应用很广泛,变形很多!原创 2020-06-17 18:16:15 · 567 阅读 · 0 评论 -
【洛谷】CF543A Writing Code
类完全背包题原创 2020-06-16 15:52:16 · 469 阅读 · 0 评论 -
【洛谷】P1439 【模板】求最长公共子序列
【洛谷】P1439 【模板题】求最长公共子序列1.题意给出两个序列,如何求出其最长公共子序列?2.分析step1.映射序列step2.用O(NlogN)求最长不下降子序列原创 2020-06-14 19:30:55 · 580 阅读 · 1 评论 -
【洛谷】P1510 精卫填海
【洛谷】P1510 精卫填海原创 2020-06-13 09:29:35 · 576 阅读 · 0 评论 -
【洛谷】P1176 路径计数2
入门dp题。原创 2020-06-12 20:35:45 · 810 阅读 · 0 评论 -
【区间dp练习】【洛谷】P1040 加分二叉树
【区间dp练习】【洛谷】P1040 加分二叉树二叉树的遍历方式原创 2020-04-26 12:07:08 · 787 阅读 · 0 评论 -
【洛谷】P1021 邮票面值设计
P1021 邮票面值设计(1)dfs+dp;(2)注意这种问题dp数组含义的令法很关键,我数次将这个dp[i]令成价值i是否可达。而真正的应该设成:到达价值i的最少需要的票数;(3)在dfs中的dp数组需要置零,因为是根据每次的选择都要重新计算;原创 2020-04-26 01:05:48 · 614 阅读 · 0 评论 -
【洛谷】P1006 传纸条
P1006 传纸条0.总结Get to the points first. The article comes from LawsonAbs!坐标上的dp题1.题意这题和P1004 方格取数 很像。2.分析题中有坐标的dp题都是有明显提示的,那么这题也是一样,很容易就能找到状态转移方程。令dp[i][x1][x2]表示的是一共走了i步,然后坐标点在(x1,i+2-y1),(...原创 2020-04-25 21:51:45 · 529 阅读 · 0 评论 -
【算法竞赛刷题模板11】区间dp
区间dp是常见的一种dp题。区间dp有固定的套路。step1.确定区间长度len,一般是 len 属于[0,n]。按照从小到大的顺序遍历一次,这个作为dp问题处理的阶段。step2.然后接着确定区间的端点,step3.然后确定状态转移方程...原创 2020-04-20 18:01:34 · 738 阅读 · 1 评论 -
适合新手入门的DP题总结【精选洛谷题集30道】
适合新手入门的DP问题总结【精选洛谷题集30道】,简述解答dp问题时常用的思想。原创 2020-04-14 18:23:40 · 6578 阅读 · 3 评论 -
N个节点的二叉树的形态数详细推导
N个节点的二叉树的形态数卡特兰数原创 2020-03-20 22:49:39 · 3791 阅读 · 0 评论 -
求最长不下降子序列的个数
最长不下降子序列的个数0.问题1.计算一个序列的最长不下降子序列长度2.并且给出这个序列中最长不下降子序列的个数1.代码如下所示。其中1.len[i]存放以i为递增序列尾部元素的最长序列长度(注意是最长序列)2.cnt[i]存放以i为递增序列尾部元素的最长序列个数(注意是最长序列)#include<iostream>using namespace std;...原创 2020-01-27 11:34:11 · 948 阅读 · 0 评论 -
最长不下降子序列的O(nlogn)算法
用O(NlogN)的复杂度求 最长不下降子序列。深度挖掘数据下的规律,可以加速dp的推导。原创 2018-01-18 11:00:54 · 5061 阅读 · 8 评论 -
数塔问题---动态规划解法
数塔问题1.给出一个有规律摆放的数列(从上往下数,第一层有一个数,第二层有两个数,第三层有三个数,……第n层有n个数,这样求从第一层到第n层最大的数字之和) 2.使用动态规划解法求解,关于动态规划知识,这里不给出。代码如下:#include#define maxn 100//二维数组不宜开的过大,否则空间不够 int array[maxn][maxn];//一个二维数组存储数塔原创 2018-01-17 14:44:55 · 2014 阅读 · 0 评论 -
DP练习——砝码称重
DP练习——砝码称重0.总结Get to the key point firstly, the article comes from LawsonAbs!不能呆板!不要认为dp只适合用于解决最大值,最小值类型的问题。在其计算最大最小值的同时,也保留了到达最值的过程,这个过程数据有时也是我们所需要的。1.题意给出质量分别为 1-n 的砝码各一个,求出由这n个砝码可称出的重量数。举例...原创 2020-03-06 20:53:26 · 594 阅读 · 0 评论