湖南省第七届程序设计省赛 virus(LCIS)

来源:互联网 发布:麻将辅助软件 编辑:程序博客网 时间:2024/06/06 14:24



#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <algorithm>#include <stack>#include <cmath>#include <vector>#include <queue>#include <map>#include <set>using namespace std;#define LL long long#define M 1002#define DEBUG puts("It's here!")#define INF 1<<29#define CLS(x,v) memset(x,v,sizeof(x))#define FOR(i,w,n)  for(int i=(w);i<=(n);++i)int a[M],b[M],dp[M];//表示以b[j]结尾的最长LCISint n1,n2;void solve(){    int Max;    for(int i=1;i<=n1;i++)    {        Max=0;//统计dp[i-1][k] 1<=k<j 且a[i]>b[k]的最大值        for(int j=1;j<=n2;j++)        {            if(a[i]==b[j])dp[j]=Max+1;            else if(a[i]>b[j]&&Max<dp[j])Max=dp[j];        }    }    int ans=0;    for(int i=1; i<=n2; i++)        if(dp[i]>ans)ans=dp[i];    printf("%d\n",ans);}int main(){    int T;    scanf("%d",&T);    while(T--)    {        scanf("%d",&n1);        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]);        CLS(dp,0);        solve();    }    return 0;}


0 0