51 nod 1006 最长公共子序列Lcs
2015-04-15 16:59
375 查看
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1006
参考博客 :http://blog.csdn.net/yysdsyl/article/details/4226630
View Code
参考博客 :http://blog.csdn.net/yysdsyl/article/details/4226630
#include<string> #include<iostream> using namespace std; const int maxn = 1111; int dp[maxn][maxn]={0}; string a,b; void LCS(int n,int m) { for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) if(a[i-1]==b[j-1]) dp[i][j]=dp[i-1][j-1]+1; else dp[i][j]=max(dp[i][j-1],dp[i-1][j]); } int main() { cin>>a>>b; int l1=a.size(),l2=b.size(); LCS(l1,l2); int len=dp[l1][l2]; string ans; int i=l1,j=l2; while(dp[i][j]) { if(dp[i][j]==dp[i-1][j]) i--; else if(dp[i][j]==dp[i][j-1]) j--; else ans.push_back(a[i-1]),i--,j--; } for(int i=len-1;i>=0;i--) cout<<ans[i]; return 0; }
View Code
相关文章推荐
- 1006 最长公共子序列Lcs(输出路径)(51NOD基础题)
- 51 Nod 1006 最长公共子序列Lcs
- 51nod1006---最长公共子序列Lcs(51nod基础:动态规划)
- 51 Nod 1006 最长公共子序列
- 最长公共子序列Lcs---51--Nod
- 【51nod】---1006 最长公共子序列Lcs(动态规划&&字符串LCS)
- 51nod 1006 最长公共子序列Lcs
- 51node-1006-最长公共子序列Lcs
- lcs 51nod 1006 最长公共子序列Lcs
- 1006 最长公共子序列Lcs
- 51nod 1006 最长公共子序列Lcs(打印路径)
- lcs 51nod 1006 最长公共子序列Lcs
- 51-Nod 1006 最长公共子序列Lcs
- 51nod 1006 最长公共子序列Lcs
- 51nod 1006 最长公共子序列LCS+路径回溯
- 【51node】-1006- 最长公共子序列Lcs(LCS,输出序列,模板)
- 【51nod】1006 最长公共子序列Lcs
- 51Nod-1006-最长公共子序列Lcs
- 51Nod- 1006 最长公共子序列Lcs(动态规划)
- 51nod 1006 最长公共子序列Lcs