救救孩子我吧《[NOIP2004 提高组] 合唱队形》玄关
查看原帖
救救孩子我吧《[NOIP2004 提高组] 合唱队形》玄关
973280
Apollo0130楼主2024/7/8 14:02

只AC了一点

#include<bits/stdc++.h>
using namespace std;
int a[101];
int f1[101],f2[101];
bool cmp(int x,int y){
	return x>y;
}
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	//最长上升子序列 
	for(int i=1;i<=n;i++){
		f1[i]=1;
		for(int j=1;j<i;j++){
			if(a[j]<a[i])f1[i]=max(f1[i],f2[j]+1);
		}
	}
	//最长下降子序列
	for(int i=1;i<=n;i++){
		f2[i]=1;
		for(int j=1;j<i;j++){
			if(a[j]>a[i])f2[i]=max(f2[i],f2[j]+1);
		}
	}
	sort(f1+1,f1+n+1,cmp);
	sort(f2+1,f2+n+1,cmp);
	//cout<<f1[1]<<" "<<f2[1]<<"\n";
	cout<<n-f1[1]-f2[1];
	return 0;
}
2024/7/8 14:02
加载中...