WA20分求调
查看原帖
WA20分求调
875953
mcwj楼主2024/8/1 20:14

思路:先求上升子序列,再求下降子序列,再相加,求最大值(已减一)

#include<bits/stdc++.h>
using namespace std;
int n,a[101],b[101],c[101],ma=0;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i];
	for(int i=1;i<=n;i++){
		b[i]=c[i]=1;
		for(int j=1;j<i;j++)
			if(a[j]<a[i])b[i]=max(b[i],b[j]+1);
		for(int j=n;j>i;j--)
			if(a[j]<a[i])c[i]=max(c[i],c[j]+1);
		ma=max(ma,b[i]+c[i]-1);
	}
	cout<<n-ma;
	return 0;
}

本人是真蒟蒻,求大佬帮助

2024/8/1 20:14
加载中...