• POJ-2533-Longest Ordered Subsequence(LIS模板)


    Description

    A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence of the given numeric sequence ( a1, a2, ..., aN) be any sequence ( ai1, ai2, ..., aiK), where 1 <= i1 < i2 < ... < iK <= N. For example, sequence (1, 7, 3, 5, 9, 4, 8) has ordered subsequences, e. g., (1, 7), (3, 4, 8) and many others. All longest ordered subsequences are of length 4, e. g., (1, 3, 5, 8).

    Your program, when given the numeric sequence, must find the length of its longest ordered subsequence.

    Input

    The first line of input file contains the length of sequence N. The second line contains the elements of sequence - N integers in the range from 0 to 10000 each, separated by spaces. 1 <= N <= 1000

    Output

    Output file must contain a single integer - the length of the longest ordered subsequence of the given sequence.

    Sample Input

    7
    1 7 3 5 9 4 8

    Sample Output

    4
    
    注意:一般memset对数组赋0或-1,赋值其他的要用循环来实现
    #include <stdio.h>
    #include <string.h>
    #include <algorithm>
    using namespace std;
    int main()
    {
        int n,i,j,a[1005],d[1005];
        while(scanf("%d",&n)!=EOF)
        {
            int sum=0;
    
            for(i=0; i<=n; i++)
            {
                d[i]=1;
            }
    
            for(i=1; i<=n; i++)
            {
                scanf("%d",&a[i]);
                for(j=1; j<i; j++)
                {
                    if(a[j]<a[i])
                        d[i]=max(d[i],d[j]+1);//依次遍历在它以前的元素,找出各个元素中标记的最长长度
                }
                sum=max(sum,d[i]);
            }
            printf("%d
    ",sum);
        }
        return 0;
    }
  • 相关阅读:
    主流浏览器标签默认样式一览
    为什么要清除默认样式?
    php 的空间命名以及对对象的相关操作,扩展到对数据库的相关函数
    js string
    js基础
    ubuntu-desktop
    php 时期相关函数
    字符串,验证码
    function 相关
    ubuntu_soft相关安装
  • 原文地址:https://www.cnblogs.com/tianmin123/p/4651836.html
Copyright © 2020-2023  润新知