uva 111

来源:互联网 发布:泛函是什么 知乎 编辑:程序博客网 时间:2024/05/22 08:07
/*    ID: problem6    PROG : History Grading    LANG : C++*/#include <cstdio>#include <iostream>#include <queue>#include <cstring>#include <vector>#include <algorithm>using namespace std;int a[25], b[25];int dp[25][25];int Max(int x, int y) { return x > y ? x : y; }int lcs(int *a, int *b, int n){    memset(dp, 0, sizeof(dp));    for(int i = 1; i <= n; i ++){        for(int j = 1; j <= n; j ++){            if(a[i] == b[j]) dp[i][j] = dp[i-1][j-1] + 1;            else dp[i][j] = Max(dp[i][j-1], dp[i-1][j]);        }    }    return dp[n][n];}int main(){    int n, temp;    scanf("%d", &n);    for(int i = 1; i <= n; i ++){        scanf("%d", &temp);        a[temp] = i;    }    while(scanf("%d", &temp) != EOF){        b[temp] = 1;        for(int j = 2; j <= n; j ++){            scanf("%d", &temp);            b[temp] = j;        }        int ans = lcs(a, b, n);        printf("%d\n", ans);    }    return 0;}/*conclusion :13811942 111 History GradingAccepted C++11 0.012 2014-06-30 08:50:001: 要知道是什么序列进行比较,还发现英语水平亟待极高2: 最长公共子序列.*/

0 0
原创粉丝点击