poj1458 Common Subsequence
2012-08-05 20:39
369 查看
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<math.h> #include<algorithm> using namespace std; char str1[1000]; int l1; char str2[1000]; int l2; int result[1000][1000]; void dp(int n1,int n2) { if(str1[n1-1]==str2[n2-1]) { if(result[n1-1][n2-1]==-1) { dp(n1-1,n2-1); } result[n1][n2]=result[n1-1][n2-1]+1; return; } if(result[n1-1][n2]==-1) { dp(n1-1,n2); } if(result[n1][n2]<result[n1-1][n2]) { result[n1][n2]=result[n1-1][n2]; } if(result[n1][n2-1]==-1) { dp(n1,n2-1); } if(result[n1][n2]<result[n1][n2-1]) { result[n1][n2]=result[n1][n2-1]; } } int main() { while(scanf("%s %s",str1,str2)!=EOF) { l1=strlen(str1); l2=strlen(str2); int i; memset(result,-1,sizeof(result)); for(i=0;i<=l1;i++) { result[i][0]=0; } for(i=0;i<=l2;i++) { result[0][i]=0; } dp(l1,l2); printf("%d\n",result[l1][l2]); } return 0; }
相关文章推荐
- poj-1458 Common Subsequence
- Poj 1458 Common Subsequence(LCS)
- HDU1159 && POJ1458 Common Subsequence (LCS)
- POJ 1458--Common Subsequence【LCS】
- POJ-1458 Common Subsequence ( DP )
- 最长公共子序列(LCS, Longest Common Subsequence), POJ 1458
- POJ-1458-Common Subsequence-经典DP
- POJ 1458 & HDU 1159 - Common Subsequence(最长公共子序列)
- POJ-1458 Common Subsequence(线性动规,最长公共子序列问题)
- (Relax DP1.5)POJ 1458 Common Subsequence(使用dp来求解最长公共子串)
- POJ 1458 Common Subsequence
- POJ--1458:Common Subsequence (DP求最长公共子序列)
- Common Subsequence POJ - 1458
- POJ 1458 Common Subsequence(DP)
- POJ_1458_Common Subsequence
- Poj 1458 Common Subsequence【LCS】【dp】
- poj 1458 Common Subsequence
- poj 1458 Common Subsequence【LCS】
- UVa 10405 & POJ 1458 Longest Common Subsequence
- POJ 1458 Common Subsequence