HDU 1159 最长公共子序列问题 动态规划
2010-12-11 20:46
232 查看
HDU 1159 最长公共子序列问题
详见杭电刘春英老师PPT
详见杭电刘春英老师PPT
//DP算法: //用f[i][j] 表示字符串a的第i个字母与字符串b的第j个字母比较,得到两串相比时第i和第j个字母之前相同字母的个数 // 如果a[i-1]==b[j-1], f(i,j)= f(i-1,j-1)+1;否则,f(i,j)=max(f(i,j-1),f(i-1,j)); #include<iostream> #include<string> using namespace std; int main() { int f[500][500]; char a[500],b[500]; int i,j,lena,lenb; while(scanf("%s%s",a,b)!=EOF) { lena=strlen(a); lenb=strlen(b); for(i=0;i<lena;i++) f[0][i]=0; //字符串a没有字符时,b与a比较的结果都是0 for(i=0;i<lenb;i++) f[i][0]=0; //字符串b没有字符时,a与b比较的结果都是0 for(i=1;i<=lena;i++) { for(j=1;j<=lenb;j++) { if(a[i-1]==b[j-1]) { f[i][j]=f[i-1][j-1]+1; } else { if(f[i][j-1]>f[i-1][j]) f[i][j]=f[i][j-1]; else f[i][j]=f[i-1][j]; } } } printf("%d/n",f[lena][lenb]); } return 0; }
相关文章推荐
- HDU 1159 最长公共子序列问题 动态规划
- hdu 1503:Advanced Fruits(动态规划 DP & 最长公共子序列(LCS)问题升级版)
- hdu 1159 最长公共子序列问题
- 动态规划LCS问题( HDU - 1159 Common Subsequence)
- SDUT 2080 最长公共子序列问题 (同uva10100 && POJ 1458 && HDU 1159)
- hdu 1159 Common Subsequence(最长公共子序列问题)
- POJ 1458/HDU 1159 最长公共子序列 (动态规划)
- hdu1159 - Common Subsequence (dp 最长公共子序列问题)
- 动态规划解最长公共子序列(LCS)问题 (附可打印LCS完整代码)
- HDU 1159 Common Subsequence(动态规划)
- HDU-1159 Common Subsequence(最长公共子序列)
- 编程之美---动态规划基础篇之最长公共子序列问题
- hdu1159 最长公共子序列
- hdu 1159 Palindrome(回文串) 动态规划
- 动态规划——最长公共子序列问题(LCS)
- 动态规划解最长公共子序列问题
- HDU 1159 Common Subsequence (动规+最长公共子序列)
- NYOJ 36 &&HDU 1159 最长公共子序列(经典)
- 动态规划 最长公共子序列(LCS)问题
- JAVA 动态规划之最长公共子序列问题