http://acm.nyist.net/JudgeOnline/problem.php?pid=36最长公共子序列时间限制:3000ms | 内存限制:65535KB难度:3描述咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。tip:最长公共子序列也称作最长公共子串(不要求...
分类:
其他好文 时间:
2015-05-21 01:20:57
阅读次数:
203
通俗地说:动态规划就是将一个可以划分为子问题的问题进行递归求解,不过动态规划将大量的中间结果保存起来,不管它们是否会用得到,从而在后面的递归求解过程中可以快速求解。由此可以看得出来动态规划是一个以牺牲空间为代价换取时间的算法。
一、首先先观察问题是否符合动态规划最明显的两个特征:最优子结构和重叠子问题。
二、建立状态转移方程...
分类:
其他好文 时间:
2015-05-19 22:47:02
阅读次数:
204
通俗地说:动态规划就是将一个可以划分为子问题的问题进行递归求解,不过动态规划将大量的中间结果保存起来,不管它们是否会用得到,从而在后面的递归求解过程中可以快速求解。由此可以看得出来动态规划是一个以牺牲空间为代价换取时间的算法。
一、首先先观察问题是否符合动态规划最明显的两个特征:最优子结构和重叠子问题。
二、建立状态转移方程...
分类:
其他好文 时间:
2015-05-19 19:12:23
阅读次数:
137
最长公共子序列,其实就是最长上升子序列的变形。 dp[i][j]表示以第一个序列的i位置为结尾和以第二个序列的j位置为结尾的子序列的公共子序列的长度。
显然影响决策的因素就是这两个序列的位置,所以二重循环直接搞就行了,如果这两个位置的字符相同就+1
#include
#include
#include
#include
#include
using namespace std;
char s...
分类:
其他好文 时间:
2015-05-17 18:46:02
阅读次数:
125
From:http://my.oschina.net/leejun2005/blog/1171671、先科普下最长公共子序列 & 最长公共子串的区别:找两个字符串的最长公共子串,这个子串要求在原字符串中是连续的。而最长公共子序列则并不要求连续。2、最长公共子串其实这是一个序贯决策问题,可以用动态规划...
分类:
编程语言 时间:
2015-05-17 11:58:50
阅读次数:
107
题意:给n个序列,同一个序列里面元素互不相同,求它们的最长公共子序列。思路:任取一个序列,对于这个序列里面的两个数ai,aj(i 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #inc...
分类:
其他好文 时间:
2015-05-17 07:05:03
阅读次数:
236
题目:在一个n*n的棋盘上,格子标号1~n*n,现在有两个人从1跳到n*n(不走重复点),
现在要求去掉最少的中间点,使得路径是一样的。
分析:dp,LIS,LCS。问题是求最大公共子序列,数据较大需要O(nlgn)算法。
发现题目中的数据是不重复的,所以可以转化成最大上升子序列;
记录序列1中每个元素对应的顺序,将序...
分类:
其他好文 时间:
2015-05-13 23:13:48
阅读次数:
192
1 #include 2 #include 3 int lcs(char a[], char b[],int na,int nb,int j); 4 int main(void){ 5 char a[]="abcdefg"; 6 char b[]="bdcedeabf"; 7 ...
分类:
其他好文 时间:
2015-05-13 18:57:35
阅读次数:
108
最长公共子序列
1.问题的理解与描述最长公共子序列(LCS)问题形式化为:输入:序列X = 和Y = 。
输出:X与Y的一个最长公共子序列Z。
最优子结构与子问题的重叠
定理3-1(最长公共子序列的最优子结构)
设X = 和Y = 为两个序列,并设Z = <...
分类:
其他好文 时间:
2015-05-13 10:35:29
阅读次数:
124
题目:求两字符串的最长公共子序列的长度。题外话:最长公共子串,子序列问题是被充分讨论的问题,网上一搜一大把,请bing之。本题只要求求最长公共子序列的长度,而不需要记录最长的公共子序列,给予了我们便利,请参考代码: 1 int max(int a, int b) 2 { 3 return a...
分类:
编程语言 时间:
2015-05-12 01:26:02
阅读次数:
207