题意:如题。。。
DP。。。
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
char a[305],b[305];
int f[305][305];
int main()
{
while(scanf("%s%s",a,b)!=EOF){
int alen=strlen(a);
int blen=strlen(b);
for(int i=1;i<=alen;i++)
for(int j=1;j<=blen;j++)
if(a[i-1]==b[j-1])f[i][j]=f[i-1][j-1]+1;
else f[i][j]=max(f[i-1][j],f[i][j-1]);
printf("%d
",f[alen][blen]);
}
}