记录编号 426459 评测结果 AAAAAAAAAA
题目名称 最长公共子序列 最终得分 100
用户昵称 GravatarJustWB 是否通过 通过
代码语言 C++ 运行时间 0.358 s
提交时间 2017-07-17 19:55:23 内存使用 95.86 MiB
显示代码纯文本
#include<cstdio>
#include<cctype>
#include<cstring>
#include<algorithm>
const int maxn=5000+5;
using namespace std;
char a[maxn],b[maxn];
int N[maxn][maxn];
int I,J;
int main()
{
	freopen("lcslength.in","r",stdin);
	freopen("lcslength.out","w",stdout);
	char c=getchar();
	int i=1;
	while(c!='.')
	{
		a[i]=c;
		i++;
		c=getchar();
	}
	I=i-1;
	getchar();
	c=getchar();
	i=1;
	while(c!='.')
	{
		b[i]=c;
		i++;
		c=getchar();
	}
	J=i-1;
	for(i=1;i<=I;i++)
	{
		for(int j=1;j<=J;j++)
		{
			if(a[i]==b[j])N[i][j]=N[i-1][j-1]+1;
			else N[i][j]=max(N[i-1][j],N[i][j-1]);
		}
	}
	printf("%d",N[I][J]);
	return 0;
}