题目:http://poj.org/problem?id=1458
题意:求俩个字符串的最长公共子序列的长度
参考:ACM/ICPC算法训练教程(余立功主编 南京理工大学整理) 清华大学出版社 99页
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
int dp[1010][1010];
int main(){
char s1[1010],s2[1010];
while(cin >> s1 >> s2){
memset(dp,0,sizeof(dp));
int len1=strlen(s1),len2=strlen(s2);
for(int i=1;i<=len1;i++){
for(int j=1;j<=len2;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[len1][len2] << "\n";
}
return 0;
}