1 条题解

  • 0
    @ 2026-10-25 17:16:47

    思路

    只能选一个方向下降,比较正反方向最长序列。

    参考程序(C++11)

    #include <bits/stdc++.h>
    using namespace std;
    int main(){int k;cin>>k;while(k--){int n;cin>>n;vector<int>a(n),up(n,1),down(n,1);for(int &x:a)cin>>x;int best=1;for(int i=0;i<n;i++){for(int j=0;j<i;j++){if(a[j]<a[i])up[i]=max(up[i],up[j]+1);if(a[j]>a[i])down[i]=max(down[i],down[j]+1);}best=max({best,up[i],down[i]});}cout<<best<<'\n';}}
    
    • 1

    信息

    ID
    1269
    时间
    1000ms
    内存
    64MiB
    难度
    普及−
    标签
    递交数
    1
    已通过
    1
    上传者