hdu 1159 dp LCS
Posted iEdson
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu 1159 dp LCS相关的知识,希望对你有一定的参考价值。
这题的话,边界处理起来比较复杂,我归纳了讨论,最后还是wa了,哎,看了dicuss的代码,处理还是巧妙
#include <iostream> #include <cstdio> #include <cmath> #include <algorithm> #include <string> #include <cstring> using namespace std; const int MAXN = 1E3+10; int dp[MAXN][MAXN]; int main() { string s1,s2; while(cin>>s1>>s2){ memset(dp,0,sizeof(dp)); int n1 = s1.length(); int n2 = s2.length(); for(int i=1;i<=n1;i++){ for(int j=1;j<=n2;j++){ if(s1[i-1]==s2[j-1]){ dp[i][j] = dp[i-1][j-1]+1; }else{ dp[i][j] = max(dp[i-1][j],dp[i][j-1]); } } } cout<<dp[n1][n2]<<endl; } return 0; }
以上是关于hdu 1159 dp LCS的主要内容,如果未能解决你的问题,请参考以下文章
hdu-1159 Common Subsequence (dp中的lcs问题)
hdu1159-Common Subsequence(DP:最长公共子序列LCS)
hdu 1159 Common Subsequence(dp 最长公共子序列问题LCS)
HDU 1513 && POJ 1159 Palindrome (DP+LCS+滚动数组)