zoukankan      html  css  js  c++  java
  • [POJ2533]Longest Ordered Subsequence<dp>

    题目链接:http://poj.org/problem?id=2533

    描述:

    A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence of the given numeric sequence (a1a2, ..., aN) be any sequence (ai1ai2, ..., 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.

    翻译:

    找一串数字最长上升子序列的数字个数。(手动狗头)

    没有难度的一个dp题,范围不算大,最普通的方法就可以过了

    想优化看到了其他博主说的二分,不过我没有用

    等复习到二分再来试试吧

    #include<cstdio>
    #include<iostream>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    
    int read(){
        int x=0,f=1;char ch=getchar();
        while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
        while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
        return x*f;
    }
    
    int n,a[10005],dp[10005],ans;
    
    int main(){
        n=read();
        for(int i=1;i<=n;i++)
            a[i]=read();
        for(int i=2;i<=n;i++)
            for(int j=1;j<i;j++)
                if(a[i]>a[j])dp[i]=max(dp[i],dp[j]+1);
        for(int i=1;i<=n;i++)
            ans=max(ans,dp[i]);
        cout<<ans+1;
        return 0;
    }
    View Code
  • 相关阅读:
    C#日期加减
    c#的预编译指令
    IHttpModule与IHttpHandler的区别整理
    ASP.NET提供程序
    在所有页面共享通用行为
    5.Oracle中的数据表
    asp.net跳转页面的三种方法比较(转)
    C#实现经典排序算法
    ASP.NET用户登录模块代码
    http错误锦集
  • 原文地址:https://www.cnblogs.com/Danzel-Aria233/p/12292430.html
Copyright © 2011-2022 走看看