uva111

来源:互联网 发布:剑三高冷炮哥捏脸数据 编辑:程序博客网 时间:2024/06/07 20:23
#include<stdio.h>#include<algorithm>#include<string.h>#include<math.h>using namespace std;int n,a[30],b[30],l[30][30];int input(){    int i=1,y;    while(~scanf("%d",&y))    {         b[y]=i;         i++;         if(i==n+1)return 1;    }    return 0;}int main(){    int i,x,j;//    freopen("ss.txt","r",stdin);    scanf("%d",&n);    for(i=1;i<=n;i++)    {        scanf("%d",&x);        a[x]=i;    }    while(input())    {//        for(i=1;i<=n;i++)//            printf("%d ",b[i]);//        printf("\n");        memset(l,0,sizeof(l));        int ans=0,ans1=0;        for(i=1;i<=n;i++)        {            ans=0;            for(j=1;j<=n;j++)            {                if(b[i]==a[j])                {                   ans=max(l[i-1][j-1]+1,ans);                }                else                {                    ans=max(l[i][j-1],ans);                    ans=max(ans,l[i-1][j]);                }                l[i][j]=ans;            }        }        printf("%d\n",l[n][n]);    }    return 0;}
最长公共子序
0 0