最长上升子序列c++

题目

输入样例:

7
3 1 2 1 8 5 6

输出样例:

4

 

思路

题目求最大长度,考虑使用DP来做。我们从状态表示和状态计算两方面进行分析。

假设用a数组来存序列,f数组来存以f[i]结尾的最长上升子序列。

1. 状态表示:

这一步我们思考如何定义集合。

集合f(i)定义:以f[i]结尾的所有序列。
集合属性(即f[i]存的值):最大长度。

因为题目要求最长上升子序列,通过这样定义集合,我们可以枚举所有序列,并可以求出所有以f[i]结尾的最长上升子序列,那我们就可以f[i]中选出一个最大的作为答案了。
 

2. 状态计算:

这一步我们思考如何把每个f[i]求出来。

要计算以f[i]结尾的最长上升子序列,那么我们可以利用在a[i]这个数之前算过的最长上升子序列f[j],如果a[j] 小于 a[i],说明a[i] 是可以放到a[j]后面 成为一条长度为f[j] + 1的上升子序列的。如果a[i]能放到多条f[j]后面,那么以a[i]结尾的最长上升子序列为f[i] = max(f[i], f[j] + 1)。

代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1010;
int a[N], f[N];int main()
{int n;cin >> n;for (int i = 1; i <= n; i ++)cin >> a[i];int res = 1;for (int i = 1; i <= n; i ++){ f[i] = 1;for (int j = i - 1; j >= 0; j --)if (a[i] > a[j])f[i] = max(f[i], f[j] + 1);res = max(res, f[i]);}cout << res;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/521624.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UI学习 一

教程&#xff1a;Accessibility – Material Design 3 需要科学上网&#xff0c;否则图片显示不出来。设计教程没有图片说明&#xff0c;不容易理解。 优化UI方向 清晰可见的元素足够的对比度和尺寸重要性的明确等级一眼就能辨别的关键信息 传达某一事物的相对重要性 将重…

【python爬虫】免费爬取网易云音乐完整教程(附带源码)

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 所属专栏:爬虫实战,零基础、进阶教学 景天的主页:景天科技苑 文章目录 网易云逆向网易云逆向 https://music.163.com/ 下载云音乐 胡广生等,可以选择自己喜欢的歌曲 首先,我们可以先根据…

3月8日

英语 output n. 产量&#xff1b;输出量 outstanding a. 优秀的&#xff1b;杰出的 oval n. & adj. 椭圆&#xff1b;椭圆形的 overcome v. 克服&#xff1b;解决 overhead a. 在头顶上&#xff1b;架空的 overlook v. 忽略&#xff1b;不予理会 overweight a. 太胖的&…

Python实现极限学习机回归模型(ELMRegressor算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 极限学习机回归模型&#xff08;ELMRegressor&#xff09;是基于极限学习机&#xff08;Extreme Learn…

常见数据类型

目录 数据类型 字符串 char nchar varchar varchar2 nvarchar 数字 number integer binary_float binary_double float 日期 date timestamp 大文本数据 大对象数据 Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 数…

Python实现贝叶斯优化器(Bayes_opt)优化极限学习机分类模型(ELMClassifier算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 贝叶斯优化&#xff08;Bayesian Optimization&#xff09;是一种全局优化方法&#xff0c;特别适用于…

Redis 配置文件详解

Units 单位 配置大小单位&#xff0c;开头定义了一些基本的度量单位&#xff0c;只支持bytes&#xff0c;不支持bit&#xff0c;大小写不敏感。 # Redis configuration file example. # # Note that in order to read the configuration file, Redis must be # started with …

ABAP 内表排序总结

目录 ABAP 内表排序总结需求的场景二分法查找SAP 二分法查找SAP SORT排序 ABAP 内表排序总结 ABAP 内表排序SORT总结&#xff1a; 在创建完内表之后&#xff0c;最好使用sort去排序一下使用read读取内表&#xff0c;如果没有排序的话&#xff0c;可能会读取失败read内表只能读…

devops-Maven【部署及配置】

1、准备maven工具包&#xff0c;Maven官网下载Maven的安装包 Maven – Download Apache Maven Index of /maven (apache.org) 选择后缀是.bin.tar.gz的文件下载&#xff0c;此处下载的版本是3.9.6。 2、安装maven的目录下&#xff0c;建一个Maven路径&#xff0c;然后把压缩…

ABAP 因去重和汇总导致金额数值错误

在去重之前&#xff0c;就有两条重复的&#xff0c;一旦进行分组汇总&#xff0c;金额就会翻倍&#xff0c;之后又进行去重&#xff0c;也是没有用的&#xff0c;错误数据是2588.6&#xff0c;是1294.3的两倍&#xff0c;现在试试先去重&#xff0c;再去计算数据 就是因为去重…

大疆的raw图噪声合成:Towards General Low-Light Raw Noise Synthesis and Modeling

文章目录 Towards General Low-Light Raw Noise Synthesis and Modeling1 dd2 信号相关噪声建模3 信号无关噪声&#xff1a;生成器和一致性损失&#xff08;L1和 vgg 内容损失&#xff09;4 判别器5 总结 Towards General Low-Light Raw Noise Synthesis and Modeling 1 dd 作…

2024 ssh连接linux ,包括连接被拒的解决方案

这里以windows系统 连接 linux&#xff08;centOS&#xff09;为例&#xff1a; 一、如果windows 连接时出现&#xff1a; Permission denied, please try again. 连接被拒绝&#xff0c;做出以下修改&#xff1a; 打开linux - Terminal 输入&#xff1a;cat /etc/ssh/sshd_c…