HDOJ 1159....DP入门
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#define N 500
char a[N];
char b[N];
int dp[N][N];
using namespace std;
int main()
{
int cases,i,j,n;
int count=1;
while(~scanf("%s%s",a,b))
{
int len1=strlen(a);
int len2=strlen(b);
memset(dp,0,sizeof(dp));
for(i=1;i<=len1;i++){
for(j=1;j<=len2;j++){
if(a[i-1]==b[j-1]){
dp[i][j]=dp[i-1][j-1]+1;
}else{
if(dp[i-1][j]>dp[i][j-1])
dp[i][j]=dp[i-1][j];
else
dp[i][j]=dp[i][j-1];
}
}
}
printf("%d\n",dp[len1][len2]);
//memset(dp,0,sizeof(dp));
//memset(a,'\0',sizeof(a));
//memset(b,'\0',sizeof(b));
}
return 0;
}