jason


私信TA

用户名:yisj0323

访问量:7925

签 名:

c++题刷起来

等  级
排  名 218
经  验 6348
参赛次数 18
文章发表 67
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

我喜欢用”a,b,c,d,i,j,k,l,x,y“大家请习惯。

解题思路:

运用动态规划解此题!!!

注意事项:

参考代码:

#include<bits/stdc++.h>
using namespace std;
int a[1005],b[1005],c[1005],n;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];//输入身高
	for(int i=1;i<=n;i++){//按照由左向右顺序计算b序列
	
		b[i]=1;
		for(int j=1;j<=i-1;j++){
			if(a[i]>a[j]&&b[j]+1>b[i]) b[i]=b[j]+1;
		}
	}
	for(int i=n;i>=1;i--){//按照由左向右顺序计算c序列
		c[i]=1;
		for(int j=i+1;j<=n;j++){
			if(a[i]>a[j]&&c[j]+1>c[i]) 
			c[i]=c[j]+1;
		}
	}
	int maxn=-1;//算出最大值
	for(int i=1;i<=n;i++){
		maxn=max(b[i]+c[i],maxn);
	}
	cout<<n-maxn+1;
	return 0;
}


 

0.0分

11 人评分

  评论区

  • «
  • »