7 条题解

  • 1
    @ 2026-11-6 19:58:24
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1005;
    const int INF=0x3f3f3f3f;
    int n,a[N],up[N],down[N],ans,f;
    int main(){
        cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    		up[i]=1;
    		down[i]=1;
    
    	}
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<i;j++){
    			if(a[j]<a[i])
    			    up[i]=max(up[i],up[j]+1);
    		}
    	}
    	for(int i=n;i>=1;i--){
    		for(int j=i+1;j<=n;j++){
    			if(a[j]<a[i])
    			    down[i]=max(down[i],down[j]+1);
    		}
    	}
    	for(int i=1;i<=n;i++){
    		ans=max(ans,up[i]-1+down[i]);
    	}
    	cout<<ans;
    	return 0;
    }
    
    

    信息

    ID
    1413
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    597
    已通过
    159
    上传者