最长公共子序列
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
int a[110];
int b[110];
int dp[110][110];
int dfs(int i,int j)
{
if(i<0||j<...
今天在看代码源文件求diff的原理的时候看到了LCS算法。这个算法应该不陌生,动规的经典算法。具体算法做啥了我就不说了,不知道的可以直接看《算法导论》动态规划那一章。既然看到了就想回忆下,当想到算法正确性的时候,发现这个算法的正确性证明并不好做。于是想了一段时间,里面有几个细节很trick,容易陷进...
分类:
编程语言 时间:
2014-11-05 18:49:36
阅读次数:
230
POJ 1159 Palindrome(字符串变回文:LCS)
http://poj.org/problem?id=1159
题意:
给你一个字符串, 问你做少需要在该字符串中插入几个字符能是的它变成一个回文串.
分析:
首先把原字符串和它的逆串进行匹配, 找出最长公共子序列. 那么最长公共子序列的字符串肯定是一个回文串. 所以原串剩下的部分是不构成回文的. 我们只需要添加剩下部分的字符到对应位置, 原串自然就变成了一个回文.
所以本题的解为: n 减去 (原串与逆...
分类:
其他好文 时间:
2014-11-04 13:12:12
阅读次数:
116
POJ 2250 Compromise(最长公共子序列LCS)
http://poj.org/problem?id=2250
题意:
给你两段由空格分隔的语句, 要你求该两段语句的最长公共子序列. 且随便输出一个解即可. 注意每个单词需要看成我们一般处理字符串子序列的一个单独字符. 即每个单词是一个整体.
分析:
与往常计算最长公共子序列一样的方式即可. 然后用DFS输出序列即可.本题与POJ1458提供的解法本质一样.
http://blog.csdn.net/u0134806...
分类:
其他好文 时间:
2014-11-03 17:46:19
阅读次数:
219
POJ 1458 Common Subsequence(最长公共子序列LCS)
http://poj.org/problem?id=1458
题意:
给你两个字符串, 要你求出两个字符串的最长公共子序列长度.
分析:
本题不用输出子序列,很简单,直接处理即可.
首先令dp[i][j]==x表示A串的前i个字符和B串的前j个字符的最长公共子序列长度为x.
初始化: dp全为0.
状态转移:
If A[i]==B[j] then...
分类:
其他好文 时间:
2014-11-03 16:27:00
阅读次数:
354
最长公共子序列描述咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。 tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此...
分类:
其他好文 时间:
2014-11-02 18:09:18
阅读次数:
172
给你两个子串,让你找出来一个最短的字符串包含这两个子串,输出最多的子串有多少种。
类似于最长公共子序列,相等的话长度+1,不想等的话比较长度,使用长度小的。
1577. E-mail
Time limit: 1.0 second
Memory limit: 64 MB
Vasya started to use the Internet not so long ag...
分类:
其他好文 时间:
2014-11-02 10:50:12
阅读次数:
303
http://acm.hdu.edu.cn/showproblem.php?pid=1080二维最长公共子序列#include #include #include using namespace std ;char s1[105],s2[105];int tab[5][5]={{5,-1,-2,-1...
分类:
其他好文 时间:
2014-10-30 11:37:57
阅读次数:
162
题目传送门:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18201其实是一道不算难的DP,但是搞了好久,才发现原来是题目没读清楚,囧,原序列那里简直太坑了,看了别人好多的都是用最长公共子序列,但是我用的是最长上升子序列来做,...
分类:
其他好文 时间:
2014-10-30 00:07:43
阅读次数:
257
PalindromeDescriptionA palindrome is a symmetrical string, that is, a string read identically from left to right as well as from right to left. You ar...
分类:
编程语言 时间:
2014-10-29 21:07:50
阅读次数:
219