牛客 假日 13c

合唱队形

https://ac.nowcoder.com/acm/contest/1082/C

题目描述:给你n个数要求你挑出尽可能少的几个数使得前半部分递增后半部分递减
n<130
分析:看数据范围可以看出来肯定是直接暴力,暴力每个点往前能构成的最长子序列,和往后的最长递减子序列,
            然后问题就是如何找最长递增(或递减)子序列, 考虑到一个最长子序列肯定是之前的最长子序列加一 所以记录下之前的就一定能找到后面的(非常像dp)
ac代码:
#include<iostream>
#include<cmath>
using namespace std;
int main(){
	int a[105];
	int al[105]={0},ar[105]={0};
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<i;j++){
			if(a[i]>a[j]) al[i]=max(al[i],al[j]+1);
		}
	}
	for(int i=n;i>=1;i--)for(int j=n;j>i;j--) if(a[i]>a[j]) 
		ar[i]=max(ar[i],ar[j]+1);
	int ans=0;
	for(int i=1;i<=n;i++) {
		ans=max(ans,ar[i]+al[i]);
	}
	cout<<n-1-ans<<endl;
}

全部评论

相关推荐

01-01 23:38
门头沟学院 Java
杭州同花顺 后端开发 1.5n左右
想当offer收割机的肖恩很爱刷美剧:现在这个环境,狠狠赚钱才是实际的,1是银行的子公司,技术很老,现在银行都在大规模降薪这种科技子公司肯定也在逐渐降薪,而且你也不好跳槽;2虽然钱比1多,但是各种福利待遇基本全无,加班时间可能跟1差不多,但是后续跳槽会比1好;3是大平台,而且钱确实给的很够,发展前景就不用看了,现在这个环境技术发展前景并不一定就好,非技术并不一定就差。个人认为3>2>1
点赞 评论 收藏
分享
2024-12-21 18:48
西安邮电大学 C++
黑皮白袜臭脚体育生:按使用了什么技术解决了什么问题,优化了什么性能指标来写会更好另外宣传下自己的开源仿b站微服务项目,GitHub已经390star,牛客上有完整文档教程
点赞 评论 收藏
分享
真的是临近过年了
随机昵称很奇怪:不用买鞭炮了
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务