有一个比较容易出错的点:反转求最长公共子序列,这是错误的想法 1 class Solution { 2 public: 3 string longestPalindrome(string s) { 4 int n = s.length(); 5 int lon...
分类:
其他好文 时间:
2014-08-01 15:28:31
阅读次数:
214
求最短公共祖先,是最长公共子序列的变形。在DP的同时记录下路径,然后递归回去输出即可。如果碰到公共的,只输出一次。以第一个样例为例:图中数字是最大公共子段的长度,下标代表路径。带下划线的是递归时所走的路径。 1 //#define LOCAL 2 #include 3 #include 4 #i.....
分类:
其他好文 时间:
2014-07-31 16:02:46
阅读次数:
232
题目:编辑距离,给你两个串,将已知串转化成目标串,可以增、删、改字母,求最小操作次数。
分析:dp,编辑距离。同最大公共子序列。注意操作位置是实时变化的。(前面都已经处理好了)
f[i][j] = f[i-1][j] 这时删掉 str1[j+1];
f[i][j] = f[i][j-1]...
分类:
其他好文 时间:
2014-07-31 00:02:25
阅读次数:
282
最长公共子序列的变形题目大意:给出两个基因序列,求这两个序列的最大相似度。题目中的表格给出了两两脱氧核苷酸的相似度。状态转移方程为:dp[i][j] = max(dp[i-1][j]+Similarity(s1[i], '-'), dp[i][j-1]+Similarity(s2[...
分类:
其他好文 时间:
2014-07-30 20:33:04
阅读次数:
176
最简单最基本的最长公共子序列的题目。吐槽一下为何没有给数据范围。。 1 //#define LOCAL 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 const int maxn = 1010;...
分类:
其他好文 时间:
2014-07-30 20:26:44
阅读次数:
214
本篇博文提供了实现求解所有最长公共子序列的程序实现,并提供输出所有公共子序列的方法解释,需要具备基础知识是求解一个公共子序列的动态规划方法,请自行查阅相关资料。...
分类:
其他好文 时间:
2014-07-29 21:52:04
阅读次数:
441
Common Subsequence
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 23108 Accepted Submission(s): 10149
Problem Description
A sub...
分类:
其他好文 时间:
2014-07-29 17:51:27
阅读次数:
286
引言子序列和子字符串或者连续子集的不同之处在于,子序列不需要是原序列上连续的值。对于子序列的题目,大多数需要用到DP的思想,因此,状态转移是关键。这里摘录两个常见子序列问题及其解法。例题1, 最长公共子序列我们知道最长公共子串的求法,先温习一下,它的求法也是使用DP思想,对于 字符串s1 和字符串s...
分类:
其他好文 时间:
2014-07-29 13:58:08
阅读次数:
255
题目:给你两个字符串,求一个最短的串,使得这两个串是目标串的子串。
分析:DP,最大公共子序列。最长目标串的长度为两串和减去最大公共子序列。
最长目标串的数量就是所有长度相同的情况的数量加和(路径的加和)
状态f(i,j)为串str1的前i个字符...
分类:
其他好文 时间:
2014-07-28 16:23:13
阅读次数:
390
题意:找出两个文本的最长公共子序列,输出序列
思路:最长公共子序列(LCSL),使用标记数组,递归输出最长公共子序列。
#include
#include
#include
#include
using namespace std;
const int MAXN = 105;
char s1[MAXN][MAXN], s2[MAXN][MAXN], s[MAXN]...
分类:
其他好文 时间:
2014-07-27 11:49:13
阅读次数:
204