80分求助!
查看原帖
80分求助!
255762
lyxleo楼主2021/8/11 12:42

什么情况??

#include <bits/stdc++.h>
using namespace std;
long long n;
long long a[105],b[105];
long long dp1[105],dp2[105];
int main(){
	cin>>n;
	for(int i=1;i<=n;++i){
		cin>>a[i];
		b[n-i+1] = a[i];
	}
	for(int i = 1;i<=n;++i){
		dp1[i] = 1;
		for(int j=1;j<i;++j){
			if(a[j] < a[i]){
				dp1[i] = max(dp1[i],dp1[j] + 1);
			}
		}
	}
	for(int i = 1;i<=n;++i){
		dp2[i] = 1;
		for(int j=1;j<i;++j){
			if(b[j] < b[i]){
				dp2[i] = max(dp2[i],dp2[j] + 1);
			}
		}
	}
//	for(int i=1;i<=n/2;++i){
//		swap(dp2[i],dp2[n-i+1]);
//	}
	long long ans = -(1e18);
	for(int i=1;i<n;++i){
		ans = max(ans,dp1[i]+dp2[n-i]);
	}
	printf("%lld",n-ans);
	return 0;
}

2021/8/11 12:42
加载中...