1 条题解

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

    思路

    按峰值合并两侧严格序列,不允许相邻等高和下山再上山。

    参考程序(C++11)

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

    信息

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