HDU 4681 String 最长公共子序列】的更多相关文章

题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4681 题意: 给你a,b,c三个串,构造一个d串使得d是a,b的子序列,并且c是d的连续子串.求d最大的长度. 题解: 枚举a,b串开始匹配c的位置,(结束的位置可以贪心出来),然后前后都用最长公共子序列来跑就可以了. O(n^2)预处理,O(n^2)枚举. #pragma comment(linker, "/STACK:102400000,102400000") #include<…
Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 39661    Accepted Submission(s): 18228 Problem Description A subsequence of a given sequence is the given sequence with some el…
题目描述:给出两个字符串,求两个字符串的公共子序列(不是公共子串,不要求连续,但要符合在原字符串中的顺序) in: abcfbc abfcab programming contest abcd mnp out: 4 2 0 状态转移方程: 如果s1[i]==s2[j] 则 c[i][j]=c[i-1][j-1]+1 如果s1[i]!=s2[j] 则 c[i][j]=max(c[i-1][j],c[i][j-1]) #include <iostream> #include <cstring…
#include <cstdio> #include <cstring> using namespace std; ; #define max(a,b) a>b?a:b char a[N] , b[N]; int dp[N][N]; int main() { , b+) != EOF){ ); ); ; i<=l1 ; i++) ; j<=l2 ; j++){ ][j-]+; ][j] , dp[i][j-]); } printf("%d\n"…
先预处理,用求最长公共子序列的DP顺着处理一遍,再逆着处理一遍. 再预处理串a和b中包含串c的子序列,当然,为了使这子序列尽可能短,会以c 串的第一个字符开始 ,c 串的最后一个字符结束 将这些起始位置先记录下来,然后枚举这些位置,最大的值输出,看一下代码,你就会顿悟了····哈哈. 贴代码: #include<cstdio> #include<cstring> #include<algorithm> #define N 1005 using namespace std…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159 题意: 求最长公共子序列. 题解: (LCS模板题) 表示状态: dp[i][j] = max len of LCS a串匹配到第i位,b串匹配到第j位,此时的最长公共子序列长度. 如何转移: 首先,一个明显的决策是,如果a[i] == b[j],那么此一定要匹配.(贪心) 所以分两种情况: (1)a[i] == b[j]:dp[i][j] = dp[i-1][j-1] + 1 (2)a[i]…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159 Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 37551    Accepted Submission(s): 17206 Problem Description A subsequence of…
Advanced Fruits Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1426    Accepted Submission(s): 719Special Judge Problem Description   The company "21st Century Fruits" has specialized in c…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1513 解题报告:给定一个长度为n的字符串,在这个字符串中插入最少的字符使得这个字符串成为回文串,求这个最少的个数是多少? 一开始以为只是一个普通的DP题,但是按照我的想法敲出来之后怎么样都W了,无奈搜了解题报告,得知其实这个就是一个最长公共子序列问题,就是求这个字符串跟它的逆序的 字符串的最长公共子序列.因为杭电的题内存都要求在32M内存以内,所以很开心的敲出来才发现10^6的数组都开不了,所以只好…
Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 18387    Accepted Submission(s): 7769 Problem Description A subsequence of a given sequence is the given sequence with some el…