• HDOJ 1423 Greatest Common Increasing Subsequence -- 动态规划


    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1423

    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
     题目大意是给定两个数字串seq1、seq2,求出它们最长公共递增子序列的长度。
    状态dp[j]表示seq1中从1到n与seq2中从1到j并以seq2[j]为结尾的最长公共上升子序列的长度。
    状态转移方程:dp[j] = dp[k] + 1, if seq1[i] = seq2[j], 1 <= k < j.

    #include <stdio.h>
    #include <string.h>
    
    #define MAX 501
    
    int T;
    int seq1[MAX], seq2[MAX];
    int len1, len2;
    int dp[MAX];
    
    int LCIS(){
        int i, j;
        int Max;
        memset(dp, 0, sizeof(dp));
        for (i = 1; i <= len1; ++i){
            Max = 0;
            for (j = 1; j <= len2; ++j){
                if (seq1[i] > seq2[j] && Max < dp[j])
                    Max = dp[j];
                if (seq1[i] == seq2[j])
                    dp[j] = Max + 1;
            }
        }
        Max = 0;
        for (i = 1; i <= len2; ++i){
            if (Max < dp[i])
                Max = dp[i];
        }
        return Max;
    }
    
    int main(void){
        int i;
        scanf("%d", &T);
        while (T-- != 0){
            scanf("%d", &len1);
            for (i = 1; i <= len1; ++i)
                scanf("%d", &seq1[i]);
            scanf("%d", &len2);
            for (i = 1; i <= len2; ++i)
                scanf("%d", &seq2[i]);
            printf("%d
    ", LCIS());
            if (T)
                putchar('
    ');
        }
    
        return 0;
    }

  • 相关阅读:
    Rust 变量
    Rust-lang(hello world 续)
    Rust-lang(hello world)
    Java 1.8 ASM ClassReader failed to parse class file
    Sqoop使用笔记
    Jstorm
    从flume到kafka,日志收集
    vim-3-插件管理
    vim-2-使用进阶
    Git-Repo-Gerrit-1-Git介绍,安装和配置
  • 原文地址:https://www.cnblogs.com/liushaobo/p/4373761.html
Copyright © 2020-2023  润新知