随笔分类 - LIS
摘要:传送门 正反求两次lis 最后取和最大 用n减去以后就是最小
阅读全文
摘要:传送门 这道题就像洋葱 一层一层剖开以后 其实本质就是lis 所谓友好城市 其实就是左边一个点和右边一个点之间有连线 那么问题就转化成了去掉多少个连边使得所有的边没有交点 我们对任意一边的点的坐标进行排序以后 求出另外一边的lis即可
阅读全文
摘要:传送门 上升子序列 就是满足严格递增 先考虑大体思路: 如果题目没有要求“如果两个上升子序列相同,那么只需要计算一次”,那么就非常友好了 dp转移方程也很简单 dp[i]=Σdp[j](0<j<i) 但是现在要求相同的只能记一次 我们考虑用一个数组la(lastans)[]记录 那么这个数组的作用是
阅读全文
摘要:lis 即最长上升子序列 可以用dp求解 复杂度O(n^2) 我们考虑优化 用树状数组(或者线段树) 树状数组维护区间最大值 (省去原始O(n^2)算法中的查找) 这样还能求出以i结尾的lis 二分只能求出当前序列的lis (许多题里要求lis个数什么的qwq 总之比二分方便 除了码量长) 还有一个
阅读全文
摘要:发现自己dp学的非常不好 所以开始练习dp (当然从最简单的开始啦) 题目传送门 为什么这道题是个紫题??分明代码很简单(对于多数线段树树状数组的码量来看) 个人认为思路有点难想出来(我就是看了题解才会的) 步入正题 题目描述每次插入一个数k到xk位置(0<k<=n) 那么就是一个动态的啦 插入一个
阅读全文
摘要:传送门 然而考试的时候并没有看出来是线性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]) 边界也很好理
阅读全文

浙公网安备 33010602011771号