• Codeforces Round #264 (Div. 2) D


    题意: 给出最多5个序列,问这几个序列的最长公共子序列的长度是多少。

    solution : 脑抽级别我是,第一个序列每个数字位置固定,这样只要维护一个k-1维的偏序集就好了。然后在保证每个位置合法的情况下

    走一遍最长上升子序列就好了。

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 const int inf = 0x3f3f3f3f;
     4 const int MAX = 1000+10;
     5 int a[MAX],x;
     6 int dp[MAX];
     7 int L[10][MAX];
     8 int main() {
     9     int n,k;
    10     while(scanf("%d %d",&n,&k)==2) {
    11         for(int i=1;i<=n;i++) {
    12             scanf("%d",&a[i]);
    13         }
    14         for(int i=1;i<k;i++) {
    15             for(int j=1;j<=n;j++) {
    16                 scanf("%d",&x);
    17                 L[i][x]=j;
    18             }
    19         }
    20         memset(dp,-1,sizeof(dp));
    21         bool  flag ;
    22         for(int i=1;i<=n;i++) {
    23             dp[i]=1;
    24             for(int j=1;j<i;j++) {
    25                 flag=true;
    26                 for(int m=1;m<k;m++) {
    27                     if(L[m][a[i]]<L[m][a[j]]) flag = false;
    28                 }
    29                 if(flag) dp[i]=max(dp[i],dp[j]+1);
    30             }
    31         }
    32         int ans=-inf;
    33         for(int i=1;i<=n;i++) ans=max(ans,dp[i]);
    34         printf("%d ",ans);
    35     }
    36     return 0;

    37 } 

  • 相关阅读:
    克隆节点及添加属性节点
    元素属性的添加删除(原生js)
    清浮动方法
    css样式获取及兼容性(原生js)
    js基础---数据类型转换
    js基础---数字日期及运算
    js基础---object对象
    input询问键盘输入超时自动跳过选择默认值
    xpath定位
    selenium报错问题解决方法
  • 原文地址:https://www.cnblogs.com/acvc/p/3946845.html
Copyright © 2020-2023  润新知