首先来看什么是最长公共子序列:给定两个序列,找到两个序列中均存在的最长公共子序列的长度。子序列需要以相关的顺序呈现,但不必连续。例如,“abc”, “abg”, “bdf”, “aeg”, ‘”acefg”等都是“abcdefg”的子序列。因此,一个长度为n的序列拥有2^n中可能的子序列(序列中的每...
分类:
其他好文 时间:
2015-06-18 23:40:31
阅读次数:
211
[BZOJ 2423] [HAOI2010] 最长公共子序列
分类:
其他好文 时间:
2015-06-17 18:02:26
阅读次数:
119
题目描述:求两个输入序列的最长的公共子字符串的长度。子字符串中的所有字符在源字符串中必须相邻。如字符串:21232523311324和字符串312123223445,他们的最长公共子字符串为21232,长度为5。最长公共子串(Longest Common Substirng)和最长公共子序列(Lon...
分类:
其他好文 时间:
2015-06-16 16:32:26
阅读次数:
75
hdoj1423这里写链接内容题目分析:
两个数组a[n1] , b[n2], 求最长上升公共子序列。
我们可用一维存储 f[i] 表示 b 数组以 j 结尾, 与 a[] 数组构成的最长公共上升子序列。 对数组 d 的任意 j 位, 都枚举 a[1 ~n1]。
当a[i] == b[j] 时 , 在1 ~ j - 1中 找出 b[k] 小于 a[ i ] 并且 d[k] 的值最大。 当...
分类:
其他好文 时间:
2015-06-16 09:26:02
阅读次数:
121
题意:给你一个子弹序列和恐怖分子序列,只有子弹打到对应序号的恐怖分子才能得分,每个恐怖分子有对应的分数,求最大的得分
分析:这题抽象出来的模型就是最长公共子序列,直接套公式:dp[i][j]表示用第i颗子弹打第j个恐怖分子时能得到的最大分数,注意这指的是从开始状态到这一状态这个过程的最优解,而不是这一状态的最优解;状态转移:1.当a[i]==b[j]时,dp[i][j]=dp[i-1][j-1]...
分类:
其他好文 时间:
2015-06-16 09:20:36
阅读次数:
96
hdoj1423题目分析:两个数组a[n1] , b[n2], 求最长上升公共子序列。我们可用一维存储 f[i] 表示 b 数组以 j 结尾, 与 a[] 数组构成的最长公共上升子序列。 对数组 d 的任意 j 位, 都枚举 a[1 ~n1]。当a[i] == b[j] 时 , 在1 ~ j - 1...
分类:
其他好文 时间:
2015-06-15 23:44:39
阅读次数:
140
题目链接:点击进入
刚看到这题目还以为又碰到水题了,结果写了个最长O(n^2)的代码交上去超时了,才发现n有250*250那么大.后面在网上找到了一个nlgn求最长上升子序列的方法,才过了.这个nlgn算法的主要思想是将最长公共子序列转成最长上升子序列,然后用最长上升子序列nlgn的算法求解.更具体的解释可以参看这篇博文:最长公共子序列(nlogn) 代码如下:#include...
分类:
其他好文 时间:
2015-06-12 14:56:55
阅读次数:
102
一、什么是最长公共子序列 什么是最长公共子序列呢?举个简单的例子吧,一个数列S,若分别是两个或多个已知序列的子序列,且是所有符合条件序列中最长的,则S称为已知序列的最长公共子序列。 举例如下,如:有两个随机数列,1 2 3 4 5 6 和 3 4 5 8 9,则它们的最长公共子序列便是:3 4...
分类:
其他好文 时间:
2015-06-11 22:42:56
阅读次数:
111
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19051
题目意思是给你两串数字(计为 a,b 数组),让你求他们的最长公共子序列。数字长度是 n * n (n
因为题目给出了数字在 1 ~ (n^2)内并且数字不会重复。因此,对于a数组中的每个数字,如果我们都知道他在b数组中出先得位置的话(位置计为 c 数组...
分类:
其他好文 时间:
2015-06-09 09:58:33
阅读次数:
114
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19051题目意思是给你两串数字(计为 a,b 数组),让你求他们的最长公共子序列。数字长度是 n * n (n #include #include #include using ...
分类:
其他好文 时间:
2015-06-09 06:06:34
阅读次数:
97