40分求助
查看原帖
40分求助
1303889
wumoumou_tyxx楼主2024/10/26 10:41
#include<bits/stdc++.h>
using namespace std;
int dp[10000],a[10000],maxc=-1,mina=100000000000;
int f1(int l,int r)
{
	maxc=1;
	dp[l]=1;
	for(int i=l+1;i<=r;i++)
	{
		dp[i]=1;
		for(int j=l;j<=i-1;j++)
		{
			if(a[i]>=a[j])dp[i]=max(dp[i],dp[j]+1);
		}
		if(dp[i]>maxc)maxc=dp[i];
	}
	return maxc;
}
int f2(int l,int r)
{
	maxc=1;
	dp[l]=1;
	for(int i=l+1;i<=r;i++)
	{
		dp[i]=1;
		for(int j=l;j<=i-1;j++)
		{
			if(a[i]<=a[j])dp[i]=max(dp[i],dp[j]+1);
		}
		if(dp[i]>maxc)maxc=dp[i];
	}
	return maxc;
}
int main()
{
	int n;cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i];
	for(int i=1;i<=n;i++)
	{
		int a=f1(1,i)+f2(i,n)-1;
		if(n-a<mina)mina=n-a;
	}
	cout<<mina;
}
/*
8
186 186 150 200 160 130 197 220
*/
2024/10/26 10:41
加载中...