
LCS/LDS
Loi_LXTT
这个作者很懒,什么都没留下…
展开
-
<序列DP>codevs 4748 低价购买
这里是题面 –这是一道计算不重复的最长下降子序列的方案数的题 –首先很容易想到,先计算最长下降子序列,然后遍历一遍f数组,如果f[i]==LDS,ans++ –但这样一定有重复的计算 –去重1: 记g[i]为以第i个数结尾的最长下降子序列的方案数,那么g[i]一定是由点g[j]转移而来,g[j]满足:j < i ,a[j] > a[i],f[j]==f[i]-1。但是,如果在a[i]前有k个原创 2017-10-06 10:21:56 · 275 阅读 · 0 评论 -
<序列DP>O(nlogn)的最长上升子序列
可以提交的题目传送门 (。﹏。*)不要问我为什么这么简单的题还要写博客,可我就是刚学会啊233 g[i]表示长度为i的上升子序列的最小的结尾,为什么是最小的呢?因为只有结尾越小,答案才会更优 这样,我们每for到一个数字,二分查找(可以直接用lower_bound)g数组中第一个大于等于他的位置,然后修改g[i]的值,如果没有,lower_bound会返回整个数组的第一个空的位置的指针,说明没有原创 2017-10-06 14:00:42 · 252 阅读 · 0 评论 -
<序列DP>codevs 2980 买帽子
–我也不知道这是什么类型的动态规划 –题目链接:http://codevs.cn/problem/2980/ –求一个串的最长回文子串 –相当等于把一个串倒过来,求他们两个的lcs(最长公共子序列) –这个很好想,不多解释了,一些小细节问题在代码里 –dp数组不用开在每一个串的结构体里,反过来的串也不用,都各自开一个数组,每次清空就可以了,也不耗时 –dp[i][j]表示处理到原串的第i原创 2017-09-25 17:21:45 · 267 阅读 · 0 评论