HDU 1159 && poj 1458
2013-10-10 16:42
309 查看
这是两道最简单的最基础的求最大公共子序列的长度: /* 对于求最大公共子序列长度 if(a[i-1]==b[j-1]) { dp[i][j]=dp[i-1][j-1]+1;//这里比较好理解,当a[i-1]==b[j-1],那么自然dp[i][j]+1 } else { dp[i][j]=max(dp[i-1][j],dp[i][j-1]);//如果不是相等,那么就得比较dp[i-1][j],dp[i][j-1]谁比较大 } */ #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N=1010; char a ,b ; int dp ; int main() { int i,j; int len1,len2; while(scanf("%s %s",a,b)!= EOF) { len1=strlen(a); len2=strlen(b); memset(dp,0,sizeof(dp)); for(i=1; i<=len1; i++) { for(j=1 ; j<=len2; j++) { if(a[i-1]==b[j-1]) { 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[len1][len2]); } return 0; }
相关文章推荐
- POJ 1458 && HDU 1159 Common Subsequence(LCS)
- POJ 1458 & HDU 1159 - Common Subsequence(最长公共子序列)
- HDU 1159 && POJ 1458【lcs】
- HDU 1159 & POJ 1458 Common Subsequence 【LCS】
- SDUT 2080 最长公共子序列问题 (同uva10100 && POJ 1458 && HDU 1159)
- hdu 1159 && POJ 1458Common Subsequence(LCS)
- POJ 1458 && HDU 1159 Common Subsequence (最長公共子序列)dp
- HDU 1159 & POJ 1458 Common Subsequence(LCS 最长公共子序列O(nlogn))
- HDU1159 && POJ1458 Common Subsequence (LCS)
- HDU 1159 && POJ 1458
- HDU 1159 && POJ 1458
- hdu 1159 && poj 1458 Common Subsequence (LCS)
- POJ 1458 / HDU 1159 / Southeastern Europe 2003 Common Subsequence (DP&LCS)
- poj 1159 && hdu 1513 Palindrome(LCS)
- HDU 1513 && POJ 1159 Palindrome (DP+LCS+滚动数组)
- 【mark】最长公共子序列(poj 1458+hdu 1159)
- HDU 1159 & POJ 1458 Common Subsequence (LCS)
- Hdu 1513 & Poj 1159 (LCS) + Hdu 1025 (LIS)
- POJ 1159 && HDU 1513 Palindrome(LCS)
- POJ 1458/HDU 1159 最长公共子序列 (动态规划)