(Relax DP1.6)UVA 10405Longest Common Subsequence(使用DP来求解最长公共子序列LCS)

来源:互联网 发布:北京高瓴投资大数据 编辑:程序博客网 时间:2024/06/05 09:28
/* * UVA_10405.cpp * *  Created on: 2013年12月17日 *      Author: Administrator */#include <iostream>#include <cstdio>#include <cstring>#include <cmath>using namespace std;const int maxn = 10005;string str1,str2;int dp[maxn][maxn];int maxx(int a , int b){     if(a > b) return a ;     return b ;}int main(){while(getline(cin,str1)){getline(cin,str2);//memset(dp,0,sizeof(dp)); 这样写可能会TLEint len1 = str1.size();int len2 = str2.size();int len = maxx(len1,len2);int i,j;for(i = 0 ; i <= len ; ++i){//**推荐使用这种初始化方式...dp[i][0] = 0;dp[0][i] = 0;}for(i = 1 ; i <= len1 ; ++i){for(j = 1 ; j <= len2 ; ++j){if(str1[i-1] == str2[j-1]){dp[i][j] = dp[i-1][j-1] + 1;}else{dp[i][j] = maxx(dp[i-1][j],dp[i][j-1]);}}}printf("%d\n",dp[len1][len2]);}return 0;}

1 0
原创粉丝点击