//2630526 2011-08-17 09:23:56 Accepted 1733 C 0 160 ylwh@Unknown
#include <stdio.h>
#include <string.h>
#define N 999
int main()
{
int ans, t[N], k[N], maxs, i, j, temp;
char a[N], b[N];
while(scanf(" %s %s", a, b) != EOF)
{
memset(t, 0, sizeof(t));
memset(k, 0, sizeof(k));
for(i=0; i<strlen(b); i++)
if( !k[i] )
{
maxs = 0;
for(j=i; j<strlen(b); j++)
if(b[j] == b[i])
k[j] = ++maxs;
}
ans = 0;
for(i=0; i<strlen(b); i++)
{
maxs = 0;
temp = 0;
for(j=0; j<strlen(a); j++)
{
if(t[j] > maxs)
maxs = t[j];
if(b[i] == a[j])
{
temp++;
if(temp >= k[i])
t[j] = maxs + 1;
}
if(t[j] > ans)
ans = t[j];
}
}
printf("%d\n", ans);
}
return 0;
}
ZOJ 1733 Common Subsequence【DP】
最新推荐文章于 2017-01-16 16:55:33 发布