zoukankan      html  css  js  c++  java
  • HDUOJ ---1423 Greatest Common Increasing Subsequence(LCS)

    Greatest Common Increasing Subsequence

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 3460    Accepted Submission(s): 1092


    Problem Description
    This is a problem from ZOJ 2432.To make it easyer,you just need output the length of the subsequence.
     
    Input
    Each sequence is described with M - its length (1 <= M <= 500) and M integer numbers Ai (-2^31 <= Ai < 2^31) - the sequence itself.
     
    Output
    output print L - the length of the greatest common increasing subsequence of both sequences.
     
    Sample Input
    1 5 1 4 2 5 -12 4 -12 1 2 4
     
    Sample Output
    2
     
    Source
     
     
    代码:动态规划求最长增长公共序列 下面展示的是压缩空间的lcs,由于不需要记录顺序,所以这样写,较为简便,如果要记录路径只需要将lcs[]--->换成lcs[][],
    然后maxc,变为lcs[][]的上一行即可!
     1 //增长lcs algorithm
     2 #include<stdio.h>
     3 #include<string.h>
     4 #define maxn 505
     5 int aa[maxn],bb[maxn];
     6 int lcs[maxn];
     7 int main()
     8 {
     9     int test,na,nb,i,j,maxc,res;
    10     scanf("%d",&test);
    11     while(test--)
    12     {
    13         scanf("%d",&na);
    14         for(i=1;i<=na;i++)
    15            scanf("%d",aa+i);
    16            scanf("%d",&nb);
    17         for(j=1;j<=nb;j++)
    18            scanf("%d",bb+j);
    19         memset(lcs,0,sizeof(lcs));
    20         for(i=1;i<=na;i++)
    21         {
    22             maxc=0;
    23           for(j=1;j<=nb;j++)
    24           {
    25               if(aa[i]==bb[j]&&lcs[j]<maxc+1)
    26                   lcs[j]=maxc+1;
    27               if(aa[i]>bb[j]&&maxc<lcs[j])
    28                   maxc=lcs[j];
    29           }
    30         }
    31         res=0;
    32         for(i=1;i<=nb;i++)
    33            if(res<lcs[i])res=lcs[i];
    34            printf("%d
    ",res);
    35            if(test) putchar(10);
    36     }
    37     return 0;
    38 }
     
  • 相关阅读:
    【转载】C/C++中extern关键字详解
    【转载】extern "C"的用法解析(原博主就是抄百度百科的,不如另外一篇好)
    lua Date和Time
    MySQL-Linux安装
    Hive-0.13安装
    MR案例:单表关联查询
    MR案例:小文件处理方案
    MR案例:链式ChainMapper
    MR案例:定制Partitioner
    MR案例:多文件输出MultipleOutputs
  • 原文地址:https://www.cnblogs.com/gongxijun/p/3633070.html
Copyright © 2011-2022 走看看