http://blog.csdn.net/yysdsyl/article/details/4226630 1 public class Main { 2 3 /** 4 * longest common subsequence 5 * @param args 6 ...
分类:
其他好文 时间:
2014-09-22 18:07:52
阅读次数:
203
最长递增子序列的解法有很多种,常用的有最长公共子序列法、动态规划、记录所有递增序列长度最大值的方法。最长公共子序列法:如例子中的数组A{5,6, 7, 1, 2, 8},则我们排序该数组得到数组A‘{1, 2, 5, 6, 7, 8},然后找出数组A和A’的最长公共子序列即可。显然这里最长公共子序列...
分类:
其他好文 时间:
2014-09-22 13:08:02
阅读次数:
239
int lcs_len(char *a, char *b, int c[][N]){ int aLen=strlen(a), bLen=strlen(b), i,j; for(i=0; i0) if(c[i][j]==c[i-1][j]) ...
分类:
其他好文 时间:
2014-09-21 21:00:31
阅读次数:
196
Fibonacci数列和动态规划
什么是Fibonacci数列?
Fibonacci数列指的是这样一个数列
{0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,144, ...}
它的第0项是0,第1项是第一个1。从第二项开始,每一项都等于前两项之和。用C语言可以表示为:
//Fib(n) = Fib(n-1) + fib(n-2)
int Fib(...
分类:
其他好文 时间:
2014-09-20 20:08:09
阅读次数:
235
转载自http://blog.csdn.net/steven30832/article/details/8260189 动态规划有一个经典问题是最长公共子序列,但是这里的子序列不要求连续,如果要求序列是连续的,我们叫公共子串,那应该如何得到这个串呢?最简单的方法就是依次比较,以某个串为母串,然后生....
分类:
其他好文 时间:
2014-09-19 13:46:15
阅读次数:
165
1(最长公共子串(注意和最长公共子序列区别))两个字符串str1和str2,长度分别为(l1,l2)dp[i][j]表示以两个字符串分别以第i和第j个字符结尾所能达到的公共子序列的长度,由于下面涉及到i-1和j-1,那么这个时候我们一般从i=1和j=1开始到i 0且j> 0且ch1[i-1]= ch...
分类:
其他好文 时间:
2014-09-16 08:06:50
阅读次数:
257
本文介绍基于最长公共子序列的文本比较算法——Needleman/Wunsch算法。还是以实例说明:字符串A=kitten,字符串B=sitting那他们的最长公共子序列为ittn(注:最长公共子序列不需要连续出现,但一定是出现的顺序一致),最长公共子序列长度为4。 和LD算法类似,Needleman...
分类:
其他好文 时间:
2014-09-15 19:14:09
阅读次数:
292
最长公共子序列LCS有模板的吧#include#include#includeusing namespace std;int i,j,dp[1000][1000],len1,len2;char a[1000],b[1000];void LCS(){ memset(dp,0,sizeof(dp)...
分类:
其他好文 时间:
2014-09-10 22:18:01
阅读次数:
167
问题描述:序列X={x1,x2,…,xn},Y={y1,y2,…,yn},当Z={z1,z2…,zn}是X的严格递增下标顺序(可以不连续)的子集,也是Y的严格递增下标顺序(可以不连续)的子集,则Z是X和Y的公共子序列。例如X={A,B,C,B,D,A,B},Y={B,D,C,A,B,A},{B,C,A}、{B,C,B,A}、{B,D,A,B}都是X和Y的公共子序列。其中最长的公共子序列叫做Long...
分类:
其他好文 时间:
2014-09-10 15:53:20
阅读次数:
317