#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int dp[10005][205];
int p[205],a[10005];
int main()
{
int n,m,l,i,j;
scanf("%d",&n);
scanf("%d",&m);
for(i = 1;i<=m;i++)
{
int tp;
scanf("%d",&tp);
p[tp] = i;
}
memset(dp,0,sizeof(dp));
scanf("%d",&l);
for(i = 1;i<=l;i++)scanf("%d",&a[i]);
for(i = 1;i<=l;i++)
{
for(j = 1;j<=n;j++)
{
dp[i][j] = max(dp[i][j],dp[i-1][j]);
if(p[a[i]]>=j)dp[i][p[a[i]]] = max(dp[i][p[a[i]]],dp[i-1][j]+1);
}
}
int mx = 0;
for(i = 1;i<=n;i++)mx = max(mx,dp[l][i]);
printf("%d\n",mx);
return 0;
}
PAT 1045 Favorite Color Stripe DP
最新推荐文章于 2022-09-25 15:48:17 发布