zoj 1733 || poj 1458 Common Subsequence(最长公共子序列)
2010-11-26 12:37
453 查看
以前做的 今天看到一道类似的题,找不到解题报告。。。貌似忘写了。补一下。
这个的状态方程的意思是,两个序列,A B,A的前 i( 0 < i < lenA) 个元素 和B 的最长公共序列是多少。
maxlen[i][k]意思是,A序列的前i个元素和B序列的前k个元素的最长公共子序列。
这个的状态方程的意思是,两个序列,A B,A的前 i( 0 < i < lenA) 个元素 和B 的最长公共序列是多少。
maxlen[i][k]意思是,A序列的前i个元素和B序列的前k个元素的最长公共子序列。
#include <stdio.h> #include <stdlib.h> #include <iostream> #include <memory.h> #define MAXLEN 300 using namespace std; int maxlen[MAXLEN][MAXLEN]; int main(void) { char str[MAXLEN],line[MAXLEN]; int lens,lenl; while(cin >> str) { memset(maxlen,0,sizeof(maxlen)); cin >> line; lens = strlen(str); lenl = strlen(line); for(int i=0; i<lens; i++) for(int k=0; k<lenl; k++) if( str[i] == line[k] ) maxlen[i+1][k+1] = maxlen[i][k] + 1; else if( maxlen[i+1][k] > maxlen[i][k+1] ) maxlen[i+1][k+1] = maxlen[i+1][k]; else maxlen[i+1][k+1] = maxlen[i][k+1]; cout << maxlen[lens][lenl] << endl; } return 0; }
相关文章推荐
- POJ 1458 Common Subsequence (zoj 1733 ) LCS
- POJ 1458 Common Subsequence (zoj 1733 ) LCS
- POJ--1458:Common Subsequence (DP求最长公共子序列)
- POJ1458 Common Subsequence(最长公共子序列)
- poj1458——Common Subsequence(最长公共子序列)
- POJ 1458 Common Subsequence 最长公共子序列(LCS)
- 文章标题 POJ 1458 : Common Subsequence (最长公共子序列)
- POJ-1458 Common Subsequence(线性动规,最长公共子序列问题)
- POJ 1458 Common Subsequence(最长公共子序列LCS)
- POJ-1458 Common Subsequence(线性动规,最长公共子序列问题)
- POJ 1458 Common Subsequence 【最长公共子序列】
- POJ1458 Common Subsequence 最长公共子序列
- POJ 1458 - Common Subsequence - 最长公共子序列-详解
- POJ 1458-Common Subsequence(dp之最长公共子序列)
- POJ 1458 Common Subsequence 最长公共子序列问题
- poj 1458 Common Subsequence dp 最长公共子序列
- HDU 1159 & POJ 1458 Common Subsequence(LCS 最长公共子序列O(nlogn))
- POJ 1458 Common Subsequence 【最长公共子序列】
- POJ 1458 Common Subsequence(最长公共子序列问题)
- 动态规划 POJ - 1458 Common Subsequence(最长公共子序列)