Common Subsequence
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 40645 Accepted Submission(s): 18757
Problem Description
A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X =
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int main()
{
char s1[1000];
char s2[1000];
while(~scanf("%s%s",s1+1,s2+1))
{
s1[0]='0',s2[0]='0';
int m=strlen(s1)-1;
int n=strlen(s2)-1;
int dp[1100][1100]={0}; //数组要开的足够大
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
if(s1[i]==s2[j])
dp[i][j]=dp[i-1][j-1]+1;
else dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
}
}
printf("%d\n",dp[m][n]);
}
return 0;
}