• CODEVS1576最长严格上升子序列


    题目描述 Description
    给一个数组a1, a2 … an,找到最长的上升降子序列ab1< ab2< .. < abk,其中b1< b2<..< bk。
    输出长度即可。
    输入描述 Input Description
    第一行,一个整数N。
    第二行 ,N个整数(N < = 5000)
    输出描述 Output Description
    输出K的极大值,即最长不下降子序列的长度
    样例输入 Sample Input
    5
    9 3 6 2 7
    样例输出 Sample Output
    3
    数据范围及提示 Data Size & Hint
    【样例解释】
    最长不下降子序列为3,6,7

    这么水的题目大部分OJ是没有的,CODEVS居然拿来做天梯···
    就是导弹拦截的第一问···
    求最长上升子序列即可:

    #include<iostream>
    using namespace std;
    const int N=5005;
    int n,a[N],f[N],maxn;
    int main()
    {
        int i,j;
        maxn=0;
        cin>>n;
        for(i=1;i<=n;i++)
            cin>>a[i];
        for(i=1;i<=n;i++)
            for(j=1;j<i;j++)
                if(a[i]>a[j])
                    f[i]=max(f[i],f[j]+1);
        for(i=1;i<=n;i++)
            maxn=max(maxn,f[i]);
        cout<<maxn+1;
        return 0;
    }

    n就5000,什么优化也不要加···

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    mysql面试知识点
    计算机网络
    BFS
    拓扑排序
    双指针
    回溯算法
    hash表 算法模板和相关题目
    桶排序及其应用
    滑动窗口
    贪心算法
  • 原文地址:https://www.cnblogs.com/wuhu-xiaoshen/p/4918619.html
Copyright © 2020-2023  润新知