蒟蒻80分求助
查看原帖
蒟蒻80分求助
253711
豆浆楼主2022/8/8 19:03

已经写得很规范了,但就是有两个点错的 望巨佬帮帮看下

in: 20 189 188 228 158 185 148 133 141 140 173 221 211 176 194 158 200 193 168 193 156

out:11

#include<bits/stdc++.h>
using namespace std;
int a[10000],u[10000],d[10000];
int main(){
	//freopen("chorus.in","r",stdin);
	//freopen("chorus.out","w",stdout);
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];u[i]=1;d[i]=1;
	}
	for(int i=2;i<=n;i++){//最大上升 
		
		for(int j=1;j<i;j++){
			if(a[j]<a[i]){
				u[i]=max(u[j]+1,u[i]);
			}
		}
	}
	for(int i=n-1;i>=1;i--){//最小降序列,反着枚举 
		
		for(int j=i+1;j<n;j++){
			if(a[j]<a[i]){
				d[i]=max(d[j]+1,d[i]);
			}
		}
	}
	int ans=0;
	for(int i=1;i<=n;i++){
		ans=max(ans,u[i]+d[i]-1);
	}
	cout<<n-ans;
	return 0;
} 
2022/8/8 19:03
加载中...