子序列不一定是连续的状态转移运算过程#include #include #define MAXLEN 100void LCSLength(char *x, char *y, int m, int n, int c[][MAXLEN], int b[][MAXLEN]){ int i, j; ...
分类:
其他好文 时间:
2014-09-10 15:46:20
阅读次数:
224
这题说的是给了k个串算出这k个串的最长公共子序列,这k个串每个串都是由1--n的数字组成的。将第一串的数字按照顺序重新编号为123...n 然后后面的串按照这个编号重新标号,就转化为下面每个串大最长递增子序列的问题,然后我们对于每个串计算出后面比他大的数然后建一条边(用邻接矩阵存)然后可以判断出从a...
分类:
其他好文 时间:
2014-09-10 15:42:50
阅读次数:
283
题意:给定两个串,求出两个串的最长公共子序列,要求该公共子序列不包含virus串。用dp+kmp实现dp[i][j][k]表示以i结尾的字符串和以j结尾的字符串的公共子序列的长度(其中k表示该公共子序列的与virus的匹配程度)很显然,当k==strlen(virus)时,该公共子序列不是我们所求得...
分类:
其他好文 时间:
2014-09-09 20:03:59
阅读次数:
207
第一次接触一个这最长公共上升子序列不过其实搞清楚了跟最长公共子序列和 最长上升子序列如出一辙两重循环,对于当前不相等的,等于前一个的值,相等的,等于比当前A【i】小的最大值+1。弄个临时变量记录最大值即可#include #include #include #include using namesp...
分类:
其他好文 时间:
2014-09-09 17:48:39
阅读次数:
244
受http://blog.csdn.net/yysdsyl/article/details/4226630启发,很多内容都是转载它的,或者重新整理加入了一些自己的理解。C语言#include #include const int MAXN=100;void print_lcs(int i,int j...
分类:
其他好文 时间:
2014-09-09 12:11:08
阅读次数:
254
最长公共子序列
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。
tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最...
分类:
其他好文 时间:
2014-09-07 17:20:25
阅读次数:
221
最长公共子序列(longest common subsequence)二维dp 状态dp[i][j]表示字符串x的前缀xi和字符串y的前缀yj能够构成的最长公共子序列的长度。 初始化:第0行和第0列的dp[i][0] 和 dp[0][j]都设为0. 递推:dp[i][j]=dp[i-1][j-...
分类:
其他好文 时间:
2014-09-06 10:57:13
阅读次数:
222
动态规划法
经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题。简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加。
为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于该数组中,这就是动态规划法所采用的基本方法。
【问题】 求两字符序列的最长公共字...
分类:
其他好文 时间:
2014-09-04 19:07:10
阅读次数:
197
1 //Accepted 208K 0MS 2 //dp 3 //最长公共子序列+路径 4 #include 5 #include 6 #include 7 using namespace std; 8 const int imax_n = 105; 9 const int in...
分类:
其他好文 时间:
2014-09-02 21:21:15
阅读次数:
191
题目参考网上的代码的、、、//要找到所有序列中的最长的公共子序列,//定义状态dp[i]为在第一个序列中前i个数字中的最长公共子序列的长度,//状态转移方程为dp[i]=max(dp[i],dp[j]+1); j#include #include using namespace std ;int a...
分类:
其他好文 时间:
2014-09-02 19:26:05
阅读次数:
145