比赛 20110928 评测结果 AWWAWWAAAA
题目名称 交错匹配 最终得分 60
用户昵称 belong.zmx 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-09-28 21:05:38
显示代码纯文本
#include <iostream>
#include <cstdlib>
#include <cstdio>

using namespace std;

int a[201],b[201],i,j,k,h,n,m;
int f[201][201];

int main()
{
	freopen("crossa.in","r",stdin);
	freopen("crossa.out","w",stdout);
	scanf("%d%d\n",&n,&m);
	for (i=1;i<=n;i++) scanf("%d",&a[i]);
	for (i=1;i<=n;i++) scanf("%d",&b[i]);
	for (i=1;i<=n;i++)
		for (j=1;j<=m;j++)
		{
			f[i][j]=max(f[i-1][j],f[i][j-1]);
			if (a[i]!=b[j])
			{
				for (k=1;k<=i;k++)					
					for (h=1;h<=j-1;h++)
					if (a[i]==b[h] && b[j]==a[k] && f[k][h]+2>f[i][j])
						f[i][j]=f[k][h]+2;
			}
		}
	printf("%d\n",f[n][m]);
	return 0;
}