随笔分类 -  线性DP

摘要:简单dp 阅读全文
posted @ 2019-10-22 16:00 DUO_JIaMInG 阅读(109) 评论(0) 推荐(0)
摘要:传送门 正反求两次lis 最后取和最大 用n减去以后就是最小 阅读全文
posted @ 2019-10-16 18:49 DUO_JIaMInG 阅读(207) 评论(0) 推荐(0)
摘要:传送门 这道题就像洋葱 一层一层剖开以后 其实本质就是lis 所谓友好城市 其实就是左边一个点和右边一个点之间有连线 那么问题就转化成了去掉多少个连边使得所有的边没有交点 我们对任意一边的点的坐标进行排序以后 求出另外一边的lis即可 阅读全文
posted @ 2019-10-16 18:47 DUO_JIaMInG 阅读(398) 评论(0) 推荐(1)
摘要:传送门 上升子序列 就是满足严格递增 先考虑大体思路: 如果题目没有要求“如果两个上升子序列相同,那么只需要计算一次”,那么就非常友好了 dp转移方程也很简单 dp[i]=Σdp[j](0<j<i) 但是现在要求相同的只能记一次 我们考虑用一个数组la(lastans)[]记录 那么这个数组的作用是 阅读全文
posted @ 2019-10-14 20:50 DUO_JIaMInG 阅读(154) 评论(0) 推荐(0)
摘要:发现自己dp学的非常不好 所以开始练习dp (当然从最简单的开始啦) 题目传送门 为什么这道题是个紫题??分明代码很简单(对于多数线段树树状数组的码量来看) 个人认为思路有点难想出来(我就是看了题解才会的) 步入正题 题目描述每次插入一个数k到xk位置(0<k<=n) 那么就是一个动态的啦 插入一个 阅读全文
posted @ 2019-10-13 20:32 DUO_JIaMInG 阅读(143) 评论(0) 推荐(0)
摘要:传送门 然而考试的时候并没有看出来是线性dp 那么复习一下线性dp lis问题 LIS 最长上升子序列 可以用dp求解 复杂度O(n^2) 定义dp[i] 表示a[i]为结尾的“最长上升子序列”的长度 转移方程 dp[i]=max{dp[j]+1} (0<=j<i,a[j]<a[i]) 边界也很好理 阅读全文
posted @ 2019-10-13 20:08 DUO_JIaMInG 阅读(295) 评论(0) 推荐(0)