20pts求条
查看原帖
20pts求条
1063878
Castrated_Orange楼主2024/12/21 11:13
#include<bits/stdc++.h>
using namespace std;
int a[105],dp[105];
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    int ans=n+1;
    for(int k=1;k<=n;k++){
		int num=0;
		memset(dp,0,sizeof(dp));
		dp[1]=1;
		for(int i=2;i<=k;i++){
			dp[i]=1;
			for(int j=i-1;j>=1;j--){
				if(a[j]<a[i]){
					dp[i]=max(dp[i],dp[j]+1);
				}
			}
		}
		for(int i=1;i<=k;i++){
			num=max(num,dp[i]);
		}
		int sum=0;
		memset(dp,0,sizeof(dp));
		dp[n]=1;
		for(int i=n-1;i>=k;i--){
			dp[i]=1;
			for(int j=i+1;j<=n;j++){
				if(a[j]<a[i]){
					dp[i]=max(dp[i],dp[j]+1);
				}
			}
		}
		for(int i=k;i<=n;i++){
			num=max(num,dp[i]);
		}
		ans=min(ans,n-num-sum);
    }
    cout<<ans;
    return 0;
}
2024/12/21 11:13
加载中...