zoukankan      html  css  js  c++  java
  • PAT 1045

    题目链接:http://pat.zju.edu.cn/contests/pat-a-practise/1045

    一道简单的DP,跟最大不下降子序列一个思想, 倒着考虑。F[i]表示从下标为i开始的最长题目要求的序列长度。所以状态转移方程为

        1    i == length && a[i]属于题目给定序列

    F[i]=  0      a[i]不属于题目给定序列

        1    i<j<=length &&  给定序列中a[i]不在a[j]之前

        max{F[j]}+1    i<j<=length &&  给定序列中a[i]在a[j]之前

    这是个时间复杂度为n平方的做法,不过本题能过。此题中的favorite color 序列每个元素都是unique的。所以用一个数组记录颜色的先后顺序。

     1 #include<cstdio>
     2 #include<vector>
     3 using namespace std;
     4 
     5 
     6 int main(){
     7     int N,M, L; 
     8     scanf("%d", &N);
     9     vector<int> order(N+1, 0);
    10     scanf("%d", &M);
    11     for(int i=1; i<M+1; ++i){
    12         int a; scanf("%d",&a);
    13         /*order[i]=j 表示颜色i在序列中排名为j*/
    14         order[a] = i;
    15     }
    16     scanf("%d", &L);
    17     vector<int> seq(L);
    18     for(int i=0; i<L; ++i)
    19         scanf("%d", &seq[i]);
    20     vector<int> F(L, 0);
    21     for(int i=L-1; i>=0; --i){
    22         if(i == L-1 && order[seq[i]] != 0)
    23             F[i]=1;
    24         else if(order[seq[i]] == 0)
    25             F[i]=0;
    26         else{
    27             int max(-1);
    28             for(int j=i+1; j<L; ++j){
    29                 if(order[seq[i]] <= order[seq[j]]){
    30                     if(F[j]+1 > max)
    31                         max=F[j]+1;
    32                 }
    33                 else{
    34                     if(max < 1)
    35                         max = 1;
    36                 }
    37             }
    38             F[i]=max;
    39         }
    40     }
    41     int max(-1);
    42     for(int i=0; i<L; ++i){
    43         if(F[i] > max)
    44             max=F[i];
    45     }
    46     printf("%d
    ", max);
    47     return 0;
    48 }
  • 相关阅读:
    epoll示例
    realloc的使用误区
    pyCharm最新激活码(2018激活码)
    python程序打包成.exe
    VS2017下载安装
    C# Cache缓存读取设置
    WPF中展示HTML
    Aspose Word模板使用总结
    js alert(“”)弹框 自定义样式
    利用反射将Model转化为sql
  • 原文地址:https://www.cnblogs.com/bochen-sam/p/3402190.html
Copyright © 2011-2022 走看看