首先来看什么是最长公共子序列:给定两个序列,找到两个序列中均存在的最长公共子序列的长度。子序列需要以相关的顺序呈现,但不必连续。例如,“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
题意:给你一个子弹序列和恐怖分子序列,只有子弹打到对应序号的恐怖分子才能得分,每个恐怖分子有对应的分数,求最大的得分
分析:这题抽象出来的模型就是最长公共子序列,直接套公式: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
题目链接:点击进入
刚看到这题目还以为又碰到水题了,结果写了个最长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
题意:找最长公共子序列(不要求连续)
分析:二维dp肯定的,不过我自己用的四层循环,超时;正解是画矩阵,找规律。以后要多注意这种思想
WA了很多遍,原因:1.对数组边界的处理;2.while(1)超时,改成while(cin>>a>>b)就过了
代码:
#include
#include
#define max(a,b) a>b?a:b
using namespace s...
分类:
其他好文 时间:
2015-06-07 15:50:06
阅读次数:
110
题目链接:http://acm.acmcoder.com/showproblem.php?pid=1025题意:本求最长公共子序列,但数据太多。转化为求最长不下降子序列。太NB了。复杂度n*log(n).解法:dp+二分代码:#include
#include
#include
#include
#include...
分类:
其他好文 时间:
2015-06-05 17:31:32
阅读次数:
116