记录编号 244988 评测结果 AAAAAAAAAA
题目名称 神秘的咒语 最终得分 100
用户昵称 Gravatar水墨青花 是否通过 通过
代码语言 C++ 运行时间 0.042 s
提交时间 2016-04-02 09:55:47 内存使用 1.29 MiB
显示代码纯文本
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<string>

using namespace std;

void Read();
void Work();

int n;
int la,lb;
int a[505];
int b[505];
int f[505][505];

int main()
{
	freopen("codes.in","r",stdin);
	freopen("codes.out","w",stdout);
	
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{		
		Read();
		Work();
	}
	
	
	fclose(stdin);
	fclose(stdout);
	return 0;
}

void Read()
{
	memset(a,0,sizeof(a));
	memset(b,0,sizeof(b));
	memset(f,0,sizeof(f));
	
	scanf("%d",&la);
	for(int i=1;i<=la;i++)
	{
		scanf("%d",&a[i]);
	}
	scanf("%d",&lb);
	for(int i=1;i<=lb;i++)
	{
		scanf("%d",&b[i]);
	}
}

void Work()
{
	for(int i=1;i<=la;i++)
	{
		int maxn=0;
		for(int j=1;j<=lb;j++)
		{
			if(a[i]!=b[j])
			{
				f[i][j]=f[i-1][j];
				if(a[i]>b[j]&&maxn<f[i][j])
				{
					maxn=f[i][j];
				}
			}
			else
			{
				f[i][j]=maxn+1;
			}
		}
	}
	
	int ans=0;
	for(int i=1;i<=lb;i++)
	{
		if(f[la][i]>ans)
		{
			ans=f[la][i];
		}
	}
	printf("%d\n",ans);
}