LCS属线性结构上的动态规划,应该是动规里面很简单的一种类型。
最长公共子序列问题,一旦明确了状态,找到状态转移方程还是很简单的。但是对于本题来说,难点之一就是会很难想到该如何定义状态。
作为一只菜鸟,兹认为此题很复杂。
首先我是想不到每一步都把没到终点的字母全加上1,以及这种效果与你去找开始和结束的效果是一样的。
甚至,若不是在做动规的专题,我根本想不到这样的题目,会用动规来解决。
再...
分类:
其他好文 时间:
2014-08-07 19:14:11
阅读次数:
256
LCS!~如果你在百度上搜这个的话会出来”英雄联盟冠军联赛”,orz。。但是今天要讲的LCS是最长公共子序列 ,"Longest Common Subsequence "not"League of Legends Championship Series"小盆友们又要涨姿势了~ 最长公共子序列也称作最...
分类:
其他好文 时间:
2014-08-07 18:46:50
阅读次数:
271
LCS:给出两个序列S1和S2,求出的这两个序列的最大公共部分S3就是就是S1和S2的最长公共子序列了。公共部分必须是以相同的顺序出现,但是不必要是连续的。LCS具有最优子结构,且满足重叠子问题的性质。所以我们可以用动态规划来解决LCS问题。由LCS问题的最优子结构可得出递归式:参考代码:#incl...
分类:
其他好文 时间:
2014-08-06 22:19:42
阅读次数:
204
monotonic:单调的.序列为X=(x1,x2,x3,x4...),首先排序X得到X',找出X和X'的最长公共子序列(LCS)即可。另一种思维: 先回顾经典的O(n^2)的动态规划算法,设A[i]表示序列中的第i个数,F[i]表示从1到i这一段中以i结尾的最长上升子序列的长度,初始时设F[i] ...
分类:
其他好文 时间:
2014-08-06 22:19:25
阅读次数:
244
这道题基本上是在普通LCS问题上的一点小小的变形,由求LCS的长度,改为求LCS的权值。架构还是不变的。可作为LCS问题的模板题。时间复杂度O(N^2)。
注意
题目中的字母都是小写字母,也就是只有26种字符。不需要开太大的数组。所以hash就是很好的一种保存权值的方法。另外吐槽一下。子弹序列和恐怖分子序列的长度太坑了,因为题目没有给出长度。我开了个2000个数组,wa了n次。改成2005就AC了。...
分类:
其他好文 时间:
2014-08-06 14:59:11
阅读次数:
162
题意 求两端文本的最长公共子单词序列 直接lcs增量法可以得出 打印路劲也是直接递归就行...
分类:
其他好文 时间:
2014-08-05 22:40:21
阅读次数:
248
介绍 动态规划是如此的有用,然而只盯着尽人皆知的LIS,LCS,背包,矩阵连乘之类是相当没劲的。挖掘一些在视觉方面的应用让事情变得有意思。它在改变图像分辨率和图像融合方面扮演了重要角色。 改变图像分辨率之Seam carving Seam carving是一种方法,它可以智能的改变图像分辨率(保留重...
分类:
其他好文 时间:
2014-08-05 18:43:51
阅读次数:
306
LCS是两个序列相似性的一种度量方法;若序列s1:2,5,7,9,3,1,2 s2:3,5,3,2,8则LCS为:5,3,2思路可参考:http://www.csie.ntnu.edu.tw/~u91029/LongestCommonSubsequence.html具体代码实现为: 1 #in...
分类:
其他好文 时间:
2014-08-04 13:47:37
阅读次数:
290