动态规划板子题求条 玄关
查看原帖
动态规划板子题求条 玄关
1427559
turtle_turtle楼主2025/1/4 11:08
#include<iostream>
#include<cmath>
using namespace std;
int f[100000]; 
int f1[100000];
int a[100000];
int cnmt=-1;
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;++i){
    	cin>>a[i];
	}
    for(int k=1;k<=n;++k){
    	for(int i=1;i<k;++i){
    	    f[i]=1;
    	    for(int j=1;j<i;++j){
    	    	if(a[i]>a[j]){
        			f[i]=max(f[j]+1,f[i]);                                                     
	    		}
	    	}
    	}
    	for(int i=k+1;i<=n;++i){
    	    f1[i]=1;
    	    for(int j=k+1;j<i;++j){
    	    	if(a[i]<a[j]){
        			f1[i]=max(f1[j]+1,f1[i]);
	    		}
	    	}
    	}
    	int maxx=-1;
    	for(int i=1;i<k;++i){
	    	maxx=max(maxx,f[i]);
    	}
    	int max1=-1;
    	for(int i=k+1;i<=n;++i){
	    	max1=max(max1,f1[i]);
    	}
    	cnmt=max(cnmt,maxx+max1+1);
	}
	cout<<n-cnmt;
	return 0;
}//B3637
2025/1/4 11:08
加载中...