zoukankan      html  css  js  c++  java
  • uva 111

    题目链接

    题意:给N,第二行是答案,n个数c1---cn, 代表第一个的顺序是c1,第二个数顺序是c2;

    下面每一行是学生的答案,格式同上。

    注意:这个给的顺序需要处理一下,不能直接用。

    思路:LCS。

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <cstdlib>
     5 #include <algorithm>
     6 using namespace std;
     7 #define Max(a,b)((a)>(b)?(a):(b))
     8 const int maxn= 20 + 10;
     9 int a[maxn], b[maxn], n, d[maxn][maxn];
    10 
    11 void LCS()
    12 {
    13     memset(d, 0, sizeof(d));
    14     int i, j;
    15     for(i = 1; i <= n; i++)
    16     for(j = 1; j <= n; j++)
    17     if(a[i]==b[j])
    18         d[i][j] = d[i-1][j-1] + 1;
    19     else
    20         d[i][j] = Max(d[i-1][j], d[i][j-1]);
    21     cout<<d[n][n]<<endl;
    22 }
    23 int main()
    24 {
    25     int i, x;
    26     cin>>n;
    27     for(i = 1; i <= n; i++)
    28     {
    29         cin>>x;
    30         a[x] = i;
    31     }
    32     while(cin>>x)
    33     {
    34         b[x] = 1;
    35         for(i = 2; i <= n; i++)
    36         {
    37             cin>>x;
    38             b[x] = i;
    39         }
    40         LCS();
    41     }
    42     return 0;
    43 }
  • 相关阅读:
    迷 宫
    车厢调度
    快速幂
    2804 最大最小数质因数
    3022 西天收费站
    2291 糖果堆
    1464 装箱问题 2
    Exists/In/Any/All/Contains操作符
    window.onscroll
    zIndex 属性设置元素的堆叠顺序。
  • 原文地址:https://www.cnblogs.com/bfshm/p/3748481.html
Copyright © 2011-2022 走看看