正经题解
2024-08-28 21:27:23
发布于:浙江
11阅读
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;
}
这里空空如也
有帮助,赞一个