题意:给你两字符串s1,s2,用最短的字符串表示他们(公共字串输出一次)。
Sample Input
apple peach
ananas banana
pear peach
Sample Output
appleach
bananas
pearch
dp[i][j] : 第一个字符串的前 i 个 ,和第二个字符串的前 j 个最...
分类:
其他好文 时间:
2014-08-11 21:24:02
阅读次数:
264
LCS模板 存一个
#include "stdio.h"
#include "string.h"
int main()
{
char a[1010],b[1010];
int i,j,Max,dp[1010];
while (scanf("%s",a)!=EOF)
{
scanf("%s",b);
memset(dp,0,s...
分类:
其他好文 时间:
2014-08-11 18:05:22
阅读次数:
220
B题:C题:仅由'A','G','C','T',4个字母组成,给定一个字符串S,|S|<=15,给定一个整数m,以m为长度且仅含4种字母的字符串T,求LCS(S,T)为0,1,2,3....|S|,时相应字符串T的数目。分析:dp+状态压缩反正我不会这题,也是看了羊神的代码之后才明白这题的思路下面说...
分类:
其他好文 时间:
2014-08-09 22:55:59
阅读次数:
255
第三版《算法导论》动态规划新增题目之求最长回文子序列。只要能看到书中LCS代码,这个问题就能解决。...
分类:
其他好文 时间:
2014-08-09 18:48:28
阅读次数:
330
一、什么是最长公共子序列 什么是最长公共子序列呢?举个简单的例子吧,一个数列S,若分别是两个或多个已知序列的子序列,且是所有符合条件序列中最长的,则S称为已知序列的最长公共子序列。 举例如下,如:有两个随机数列,1 2 3 4 5 6 和 3 4 5 8 9,则它们的最长公共子序列便是:3 4 5....
分类:
其他好文 时间:
2014-08-09 18:15:58
阅读次数:
311
题目链接:
啊哈哈,点我点我
题意:给两个字符串,找出经过多少个操作可以使得两个串相等。。
思路:找出两个串的最长公共子序列,然后用最大的串的长度减去最长公共子序列的长度得到的就是需要的操作数。。
题目:
AGTC
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 1001...
分类:
其他好文 时间:
2014-08-09 11:37:47
阅读次数:
250
链接:UVa 10192
题意:给定两个字符串,求最长公共子串的长度
思路:这个事最长公共子串的直接应用
#include
#include
int max(int a,int b)
{
return a>b?a:b;
}
int main()
{
char s[105],t[105];
int i,j,k=0,m,n,dp[105][105];
...
分类:
其他好文 时间:
2014-08-08 18:11:56
阅读次数:
199
~\(≧▽≦)/~啦啦啦,昨天说的是LCS,今天我们要学习的是LIS,什么是LIS呢?LIS:最长有序子序列(递增/递减/非递增/非递减)这么说还是有些模糊,举个例子: 在一个无序的序列a1,a2,.....,am里,找到一个最长的序列,满足ai D[len],则将a[i]接在D[len]后将得到一...
分类:
其他好文 时间:
2014-08-08 18:00:26
阅读次数:
247
最长公共子序列问题以及背包问题都是DP(动态规划)算法的经典题目,值得深度挖掘以致了解DP算法思想。问题如下:
最长公共子序列
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。
tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(L...
分类:
其他好文 时间:
2014-08-08 16:02:16
阅读次数:
200
题目的本意是求LCS,但由于每个序列的元素各不相同,所以将A序列重新编号{1,2,,,p+1},将B序列重新编号,分别为B中的元素在A中对应出现的位置(没有的话就是0)。在样例中就是A = {1 7 5 4 8 3 9},B = {1 4 3 5 6 2 8 9}重新编号以后:A = {1 2 3 ...
分类:
其他好文 时间:
2014-08-08 09:29:55
阅读次数:
341