正经题解
2024-08-28 21:27:23
发布于:浙江
85阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int a[1005];
int f[1005];
int dp[1005];
int n;
int main(){
    cin>>n;
	for(int i = 1;i <= n;i++){
    	cin>>a[i];
	}for(int i = 1;i <= n;i++){
		f[i] = 1;
		dp[i] = 1;
	}
	int ans = 0;
	for(int i = 1;i <= n;i++){
		for(int j=1;j < i;j++){
			if(a[i] > a[j]){
				f[i] = max(f[i],f[j]+1);
			}
		}
	}
    for(int i = n;i > 0;i--){
		for(int j = n;j > i;j--){
			if(a[i] > a[j]){
				dp[i] = max(dp[i],dp[j]+1);
			}
		}
		ans = max(ans,f[i]+dp[i]);
	}
    cout<<ans - 1;
	return 0;
}
这里空空如也




有帮助,赞一个