ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【ACwing 1017 怪盗基德的滑翔翼】线性dp->最长上升子序列模型

2022-02-20 18:00:56  阅读:131  来源: 互联网

标签:memset int max 滑翔翼 怪盗 -- ans 序列 基德


题目链接

题意:

给你一排房屋,每个房屋的高度都是任意的,你可以选择从任何一栋楼出发并决定方向,方向一旦决定便不能被改变,让你求最长下降子序列。

分析:

可以设置两个数组,求一遍上升子序列,求一遍下降子序列,然后求个最大值就好,因为是可以从任意点出发,所以说每个点都有可能是最大值,求个max即可。下面请看代码:

#include<iostream>
#include<cstring>
using namespace std;
const int N = 110;
int f[N],h[N];
int main() {
	int T;
	cin>>T;
	while(T--) {
		memset(f,0,sizeof f);
		int n;
		cin>>n;
		for(int i=1; i<=n; i++) cin>>h[i];
		int ans = 0;
		for(int i=1; i<=n; i++) {
			f[i] = 1;
			for(int j=1; j<i; j++) {
				if(h[i] < h[j]) f[i] = max(f[i],f[j]+1);
			}
			ans = max(ans,f[i]);
		}
		memset(f,0,sizeof f);
		for(int i=n; i>=1; i--) {
			f[i] = 1;
			for(int j=n; j>i; j--) {
				if(h[i] < h[j]) f[i] = max(f[i],f[j]+1);
			}
			ans = max(ans,f[i]);
		}
		cout<<ans<<endl;
	}
	return 0;
}

标签:memset,int,max,滑翔翼,怪盗,--,ans,序列,基德
来源: https://blog.csdn.net/weixin_51979465/article/details/123033528

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有