zoukankan      html  css  js  c++  java
  • 【LDS】 怪盗基德的滑翔翼

    传送门

    题意

    给定一个长度为 (N) 的序列 (A),求任意方向的最长下降子序列

    数据范围

    (1leq tleq 100)
    (1leq Nleq 100)

    题解

    对于正向和逆向分别求最长上升子序列即可

    Code

    #include<bits/stdc++.h>
    using namespace std;
    #define rep(i,a,n) for(int i=a;i<n;i++)
    #define per(i,a,n) for(int i=n-1;i>=a;i--)
    #define ll long long
    const int N=110;
    
    int n,f[N],a[N];
    
    int _;
    int main(){
        for(scanf("%d",&_);_;_--){
            int ans=-1;
            memset(f,0,sizeof f);
            scanf("%d",&n);    
            rep(i,1,n+1) scanf("%d",&a[i]);
            for(int i=1;i<=n;i++){
                f[i]=1;
                for(int j=1;j<i;j++){
                    if(a[j]<a[i])
                        f[i]=max(f[i],f[j]+1);
                }
                ans=max(ans,f[i]);
            }
            for(int i=n;i>=1;i--){
                f[i]=1;
                for(int j=n;j>i;j--)
                    if(a[j]<a[i])
                        f[i]=max(f[i],f[j]+1);
    
                ans=max(ans,f[i]);
            }
               
            printf("%d
    ",ans);
        }
    }
    
    
  • 相关阅读:
    5
    4
    2
    3
    1
    IOS js交互
    vm安装mac
    索引
    ORM 基础
    reids 日志no
  • 原文地址:https://www.cnblogs.com/hhyx/p/13389221.html
Copyright © 2011-2022 走看看