记录编号 107349 评测结果 AAAAAAAAAA
题目名称 神秘的咒语 最终得分 100
用户昵称 Gravatar→震世逆空波→ 是否通过 通过
代码语言 C++ 运行时间 0.033 s
提交时间 2014-06-25 08:40:18 内存使用 0.29 MiB
显示代码纯文本
#include<cstdio>
#include<cstring>

using namespace std;

int n1,n2,T;
int a[505],b[505],f[505],temp;
int ans;

int max(int a,int b)
{
	if(a<b)
	{
		return b;
	}
	
	else
	return a;
}

int main()
{
	freopen("codes.in","r",stdin);
	freopen("codes.out","w",stdout);
	
	scanf("%d",&T);
	
	while (T--)
	{
		scanf("%d",&n1);
		memset(a,0,sizeof(a));
		memset(b,0,sizeof(b));	
		for (int i=1;i<=n1;i++)
		{
			scanf("%d",&a[i]);
		}
		
		scanf("%d",&n2);
		for (int i=1;i<=n2;i++)
		{
			scanf("%d",&b[i]);
		}

		memset(f,0,sizeof(f));
		
		ans=0;
		
		for (int i=1;i<=n1;i++)
		{
			temp=0;
			
			for (int j=1;j<=n2;j++)
			{
				if (a[i]>b[j])
				{
					temp=max(temp,f[j]);
				}
				
				else
				if(a[i]==b[j])
				{
					f[j]=max(f[j],temp+1);
				}
				
				ans=max(ans,f[j]);
			}
		}
		
		printf("%d\n",ans);
	}
	
	return 0;
}