合唱队型……反过来
2024-11-16 16:41:44
发布于:广东
48阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int dp[1005],dp1[1005],a[1005];
int main(){
	int n;
    cin >> n;
    for(int i = 0;i < n;i ++){
    	cin >> a[i];
        int amax = 0;
        for(int j = 0;j < i;j ++){
        	if(a[j] < a[i] and dp[j] > amax){
            	amax = dp[j];
            }
        }
        dp[i] = amax + 1;
    }
    int ans = 0;
    for(int i = n - 1;i >= 0;i --){
        int amax = 0;
        for(int j = n - 1;j > i;j --){
        	if(a[j] < a[i] and dp1[j] > amax){
            	amax = dp1[j];
            }
        }
        dp1[i] = amax + 1;
        if(dp1[i] + dp[i] - 1 > ans) ans = dp1[i] + dp[i] - 1;
    }
    cout << ans;
	return 0;
}
这里空空如也



有帮助,赞一个