hdu 1159 Common Subsequence 最长公共子序列
2012-10-17 00:42
344 查看
题目描述:
Total Submission(s): 13970 Accepted Submission(s): 5758
[align=left]Problem Description[/align]
A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = <x1, x2, ..., xm> another sequence Z = <z1, z2, ..., zk> is a subsequence of X
if there exists a strictly increasing sequence <i1, i2, ..., ik> of indices of X such that for all j = 1,2,...,k, xij = zj. For example, Z = <a, b, f, c> is a subsequence of X = <a, b, c, f, b, c> with index sequence <1, 2, 4, 6>. Given two sequences X and
Y the problem is to find the length of the maximum-length common subsequence of X and Y.
The program input is from a text file. Each data set in the file contains two strings representing the given sequences. The sequences are separated by any number of white spaces. The input data are correct. For each set of data the program prints on the standard
output the length of the maximum-length common subsequence from the beginning of a separate line.
[align=left]Sample Input[/align]
[align=left]Sample Output[/align]
[align=left]Source[/align]
Southeastern Europe 2003
目测是最常公共子序列。。。。。
附上代码:
Common Subsequence
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 13970 Accepted Submission(s): 5758
[align=left]Problem Description[/align]
A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = <x1, x2, ..., xm> another sequence Z = <z1, z2, ..., zk> is a subsequence of X
if there exists a strictly increasing sequence <i1, i2, ..., ik> of indices of X such that for all j = 1,2,...,k, xij = zj. For example, Z = <a, b, f, c> is a subsequence of X = <a, b, c, f, b, c> with index sequence <1, 2, 4, 6>. Given two sequences X and
Y the problem is to find the length of the maximum-length common subsequence of X and Y.
The program input is from a text file. Each data set in the file contains two strings representing the given sequences. The sequences are separated by any number of white spaces. The input data are correct. For each set of data the program prints on the standard
output the length of the maximum-length common subsequence from the beginning of a separate line.
[align=left]Sample Input[/align]
abcfbc abfcab programming contest abcd mnp
[align=left]Sample Output[/align]
4 2 0
[align=left]Source[/align]
Southeastern Europe 2003
目测是最常公共子序列。。。。。
附上代码:
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<vector> #include<set> #include<cstdlib> #define BUG puts("ok"); #define CLR(a,b) memset((a),(b),sizeof((a))) #define inf 16843009 using namespace std; int const nMax=1010; typedef long long LL; char a[nMax],b[nMax]; int dp[nMax][nMax]; int main() { while(~scanf("%s%s",a+1,b+1)) { // printf("%s %s\n",a+1,b+1); int la=strlen(a+1),lb=strlen(b+1); CLR(dp,0); for(int i=1;a[i];i++){ for(int j=1;b[j];j++){ if(a[i]==b[j])dp[i][j]=dp[i-1][j-1]+1; else dp[i][j]=max(dp[i-1][j],dp[i][j-1]); } } printf("%d\n",dp[la][lb]); } return 0; }
相关文章推荐
- 每日三题-Day4-C(HDU 1159 Common Subsequence 最长公共子序列O(nlogn)解法)
- HDU 1159 Common Subsequence 最长公共子序列
- HDU 1159 Common Subsequence(最长公共子序列的长度)
- HDU 1159 Common Subsequence(最长公共子序列)
- HDU 1159 Common Subsequence(最长公共子序列)dp
- HDU - 1159 Common Subsequence(LCS最长公共子序列)
- hdu【1159】Common Subsequence 【最长公共子序列】
- hdu 1159 Common Subsequence(最长公共子序列)
- hdu 1159 Common Subsequence【最长公共子序列】
- hdu 1159 Common Subsequence(最长公共子序列)
- HDU 1159 Common Subsequence (动规+最长公共子序列)
- 最长公共子序列(dp) & hdu 1159 Common Subsequence
- Common Subsequence HDU - 1159 (最长公共子序列)
- HDU 1159 Common Subsequence --- DP入门之最长公共子序列
- hdu1159 Common Subsequence_LCS最长公共子序列
- HDU-1159 Common Subsequence(最长公共子序列)
- HDU1159 Common Subsequence(最长公共子序列LCS)
- HDU 1159 Common Subsequence--DP--(最长公共子序列)
- HDU 1159:Common Subsequence(最长公共子序列)
- POJ 1458 & HDU 1159 - Common Subsequence(最长公共子序列)