AcWing 895. 最长上升子序列(DP序列模型)

[题目概述]

给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。

输入格式

第一行包含整数 N。
第二行包含 N 个整数,表示完整序列。

输出格式

输出一个整数,表示最大长度。

数据范围

1 ≤ N ≤ 1000 , 1 ≤ N ≤ 1000, 1N1000
− 1 0 9 ≤ 数列中的数 ≤ 1 0 9 −10^9≤数列中的数≤10^9 109数列中的数109

输入样例:
7
3 1 2 1 8 5 6
输出样例:
4
  • 分析题意
    题目让我们求一串数字中的最大严格递增子序列的长度,不能是相等的,这题目最终落到了长度,也就是DP属性中的数量。
    注意: 这个子序列可以是跳的元素选的,不是必须挨着元素选。(我一开始就搞错了)
    先画个图
    请添加图片描述
    划分条件是重点:要以第一个不同的元素开始划分,本题中所有序列的最后一个数都是a[i],所以我们要从倒数第二个数入手。倒数第二个数范围就是 a [ 1 ] − a [ i − 1 ] a[1] - a[i - 1] a[1]a[i1]。那么此时就很好计算了。 f [ i ] = f [ i − 1 ] + 1 f[i] = f[i - 1] +1 f[i]=f[i1]+1。另外一种情况就是倒数第二个数为空,也就是整个序列只有一个数。
    这样代码就很好写了
  • 完整代码
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
const int N = 1010;
int n;

int a[N], f[N];

int main () {
	cin >> n;
	for (int i = 1; i <= n; i ++)
		cin >> a[i];

	for (int i = 1; i <= n; i ++) {
		f[i] = 1;
		for (int j = 1; j < i; j ++) {
			if (a[j] < a[i]) {
				f[i] = max(f[i], f[j] + 1);
			}
		}
	}

	int ret = 0;
	for (int i = 1; i <= n; i ++) {
		ret = max(ret, f[i]);
	}

	cout << ret << endl;
	return 0;
}
  • 本题的分享就结束了,有问题的小伙伴可以发在评论区
    记得点赞关注加收藏!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《HTML 简易速速上手小册》第1章:HTML 入门(2024 最新版)

文章目录 1.1 HTML 简介与历史&#xff08;&#x1f609;&#x1f310;&#x1f47d;踏上神奇的网页编程之旅&#xff09;1.1.1 从过去到现在的华丽蜕变1.1.2 市场需求 —— HTML的黄金时代1.1.3 企业中的实际应用 —— 不只是个网页1.1.4 职业前景 —— 未来属于你 1.2 基本 H…

HDFS Federation前世今生

一 背景 熟悉大数据的人应该都知道&#xff0c;HDFS 是一个分布式文件系统&#xff0c;它是基于谷歌的GFS实现的开源系统&#xff0c;设计目的就是提供一个高度容错性和高吞吐量的海量数据存储解决方案。在经典的HDFS架构中有2个NameNode和多个DataNode&#xff0c;如下 从上面…

Vue-Cli3 - 从安装 nodejs 配置环境 ~ 搭建 cli 脚手架项目全过程

目录 前言提示 一、安装 & 配置 nodejs 1.1、安装 nodejs 1.2、配置必要目录 1.3、配置环境变量 1.4、测试 安装&配置 是否成功 1.5、安装淘宝镜像 1.5、cnpm 安装&#xff08;推荐安装&#xff09; 二、vue-cli3 创建项目 2.1、vue-cli2 和 vue-cli3 主要区…

RBD —— 不同材质破碎

目录 Working with concrete Chipping Details Proxy geometry Constraints Working with glass Chipping Proxy geometry Constraints Resolving issues with glass fracturing Working with wood Clustering Using custom cutters Working with concrete Concr…

【STM32F103单片机】利用ST-LINK V2烧录程序 面包板的使用

1、ST‐LINK V2安装 参考&#xff1a; http://t.csdnimg.cn/Ulhhq 成功&#xff1a; 2、烧录器接线 背后有标识的引脚对应&#xff1a; 3、烧录成功 烧录成功后&#xff0c;按下核心板的RESET键复位&#xff01;&#xff01;&#xff01;即可成功&#xff01; 4、面包板的…

Docker 安装篇(Ubuntu)

图省事一般采用第一种 一、 直接采用apt安装 apt install docker.io查看 /usr/lib/systemd/system/docker.service ubuntu默认守护进程用的&#xff1a;fd:// ps -ef | grep docker root 775237 1 0 11:14 ? 00:01:07 /usr/bin/dockerd -H fd:// --cont…

SELINUX导致的网络服务问题解决

第一&#xff1a;开启相关服务&#xff0c;监控SELINUX 相关服务&#xff1a;setroubleshoot,auditd,大多数都是以se开头的 如果没有此服务&#xff0c;先yum下&#xff0c;然后查看状态 这里关于auditd说明&#xff0c;centos7不可以用systemctl重启auditd服务&#xff0c;…

Python 拼接字符串的 7 种方式

忘了在哪看到一位编程大牛调侃&#xff0c;他说程序员每天就做两件事&#xff0c;其中之一就是处理字符串。相信不少同学会有同感。 几乎任何一种编程语言&#xff0c;都把字符串列为最基础和不可或缺的数据类型。而拼接字符串是必备的一种技能。今天&#xff0c;我跟大家一起来…

剧本杀小程序的诞生:重塑线下娱乐的数字化未来

随着科技的不断发展&#xff0c;人们对于娱乐方式的需求也在不断升级。近年来&#xff0c;剧本杀作为一种新型的线下社交娱乐方式&#xff0c;以其独特的魅力和深度的人际互动性&#xff0c;受到了广大年轻人的喜爱。然而&#xff0c;传统的剧本杀模式存在一些问题&#xff0c;…

【王道数据结构】【chapter3队列】【P86t3】

利用两个栈S1和S2来模拟一个队列&#xff0c;已知栈的4个运算定义如下 Push(S,x); Pop(S,x); StackEmpty(S); StackOverflow(S); 如何利用栈的运算来实现该队列的3个运算&#xff08;形参由读者根据要求自己设计&#xff09; Enqueue;//将元素x入队 Dequeue;//出队&#xff0c;…

canvas自定义扩展示例,新增属性和方法

查看专栏目录 canvas实例应用100专栏&#xff0c;提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重…

CSAPP shelllab

CSAPP shell lab shell lab 的目标 实现shell 功能&#xff0c;包括解析命令&#xff0c;调用可执行文件和内置命令&#xff0c;(quit, jobs,fg, 和bg)。实现job控制和signal handler。 shell 介绍 Shell中的作业&#xff08;job&#xff09;管理是一种用于跟踪和控制正在运…

游戏开发丨基于Tkinter的扫雷小游戏

文章目录 写在前面扫雷小游戏需求分析程序设计程序分析运行结果系列文章写在后面 写在前面 本期内容 基于tkinter的扫雷小游戏 所需环境 pythonpycharm或anaconda 下载地址 https://download.csdn.net/download/m0_68111267/88790713 扫雷小游戏 扫雷是一款广为人知的单…

2024年搭建幻兽帕鲁服务器价格多少?如何自建Palworld?

自建幻兽帕鲁服务器租用价格表&#xff0c;2024阿里云推出专属幻兽帕鲁Palworld游戏优惠服务器&#xff0c;配置分为4核16G和4核32G服务器&#xff0c;4核16G配置32.25元/1个月、3M带宽96.75元/1个月、8核32G配置10M带宽90.60元/1个月&#xff0c;8核32G配置3个月271.80元。ECS…

Pytest中doctests的测试方法应用

在 Python 的测试生态中,Pytest 提供了多种灵活且强大的测试工具。其中,doctests 是一种独特而直观的测试方法,通过直接从文档注释中提取和执行测试用例,确保代码示例的正确性。本文将深入介绍 Pytest 中 doctests 的测试方法,包括基本用法和实际案例,以帮助你更好地利用…

上位机图像处理和嵌入式模块部署(算法库的编写)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 作为图像处理的engineer来说&#xff0c;有时候我们需要提供上位机软件&#xff0c;有时候需要提供下位机程序&#xff0c;还有一种情况&#xff0…

交换机跨VLAN交换数据ip跳转分析(不一定对)

在网上看到这样一个实验&#xff1a; 交换机1、交换机2分别连接到一台防火墙上&#xff0c;要求使VLAN 2、VLAN3、VLAN5、VLAN6中的终端可互相访问。 拓补 参考链接 【数通网络交换基础梳理2】三层设备、网关、ARP表、VLAN、路由表及跨网段路由下一跳转发原理_网管型交的机…

编程大侦探林浩然的“神曲奇遇记”

编程大侦探林浩然的“神曲奇遇记” The Coding Detective Lin Haoran’s “Divine Comedy Adventures” 在我们那所充满活力与创新精神的高职学院中&#xff0c;林浩然老师无疑是众多教师中最独特的一颗星。这位身兼程序员与心理分析专家双重身份的大咖&#xff0c;不仅能在电脑…

系统分析师-23年-下午题目

系统分析师-23年-下午题目 更多软考知识请访问 https://ruankao.blog.csdn.net/ 试题一必答&#xff0c;二、三、四、五 四选二 试题一 (25分) 说明 某软件公司拟开发一套汽车租赁系统&#xff0c;科学&#xff0c;安全和方便的管理租赁公司的各项业务&#xff0c;提高公司…

部署个人知识库管理软件 MrDoc详细教程

效果 一、拉取 MrDoc 代码 进入目录&#xff1a; cd /opt开源版&#xff1a; git clone https://gitee.com/zmister/MrDoc.git专业版&#xff1a; git clone https://{用户名}:{密码}git.mrdoc.pro/MrDoc/MrDocPro.git二、拉取 Docker 镜像 docker pull zmister/mrdoc:v7三…