首页 > 其他分享 >Acwing 最长上升子序列

Acwing 最长上升子序列

时间:2023-10-19 21:11:06浏览次数:27  
标签:int 最大值 序列 长度 递推 最长 Acwing

题目

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

输入格式

第一行包含整数 N

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

输出格式

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

数据范围

1≤N≤1000
−10^9≤数列中的数≤ 10^9

输入样例:

7
3 1 2 1 8 5 6

输出样例:

4

题解

本题是非常经典的一道动态规划问题
首先进行状态分析
f[i]代表以第i项为结尾的最长的连续递增子序列的长度
状态特征是最大值
从第1项开始递推,第i项的最长子序列长度应该为前i-1项中的某一项长度+1,而寻找到这项的条件是g[i]>g[某项] 然而肯定不止有一项,例如 1 6 2 5 ,当求第四项的递推值时,有{1,5},]和{2,5}可选,{2,5}的值必然会大,因为f[3]的值是2 ,为{1},{1,2}中长度的最大值也就是{1,2},
如此进行递推,那么从f递推数组中取最大值 ,因为f[i]代表的是以第i项为结尾的,最长长度的上升子序列,所以求得的 就是该序列中最长的上升子序列,

代码

#include<iostream>
using namespace std;
const int N = 1010;
int g[N],f[N];
int main(){
    int n;
    cin>>n;
    for(int i = 1;i <= n;i++){
        cin>>g[i];
        f[i] = 1;
    }
    for(int i = 1;i<=n;i++){
        for(int j = 1;j<i;j++){
            if(g[i]>g[j])f[i] = max(f[i],f[j]+1);
        }
    }
    int ans = 0;
    for(int i = 1;i<=n;i++)ans = max(ans,f[i]);
    cout<<ans;
}

标签:int,最大值,序列,长度,递推,最长,Acwing
From: https://www.cnblogs.com/ChengMao/p/17775660.html

相关文章

  • gson如何序列化子类
    需求目前有一个需求,不同对象有一些公共属性,分别也有一些不同的属性。对方传过来的json字符串中,把这些对象组成了一个数组返回过来的。这样该如何反序列化呢?举例定义Person类、Student类、Worker类;@Data@ToStringpublicclassPerson{//姓名privateStringname;......
  • 由Django-Session配置引发的反序列化安全问题
    漏洞成因漏洞成因位于目标配置文件settings.py下关于这两个配置项SESSION_ENGINE:在Django中,SESSION_ENGINE 是一个设置项,用于指定用于存储和处理会话(session)数据的引擎。SESSION_ENGINE 设置项允许您选择不同的后端引擎来存储会话数据,例如:数据库后端 (django.contrib.sessions.b......
  • 算法笔记-有效括号序列题解
    描述给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列。括号必须以正确的顺序关闭,"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"不合法。数据范围:字符串长度0≤n≤10000要求:空间复杂度O(n),时间复杂......
  • Python自激励阈值自回归(SETAR)、ARMA、BDS检验、预测分析太阳黑子时间序列数据
    全文链接:https://tecdat.cn/?p=33896原文出处:拓端数据部落公众号这篇文章展示了自激励阈值自回归SETAR的使用,用于分析经常被客户研究的太阳黑子数据集。具体而言,研究SETAR模型的估计和预测。我们在这里考虑原始的太阳黑子序列以匹配ARMA示例,尽管文献中许多来源在建模之前对序......
  • R语言时变向量自回归(TV-VAR)模型分析时间序列和可视化|附代码数据
    全文链接:http://tecdat.cn/?p=22350 最近我们被客户要求撰写关于时变向量自回归(TV-VAR)模型的研究报告,包括一些图形和统计输出。在心理学研究中,个人主体的模型正变得越来越流行。原因之一是很难从人之间的数据推断出个人过程另一个原因是,由于移动设备无处不在,从个人获得的时间......
  • C#上位机序列9: 批量读写+事件广播
    1.读取配置文件及创建变量信息(点位名称,地址,数据类型(bool/short/int/float/long/double))2.读任务&写任务,数据有变化时事件广播通知usingHslCommunication;usingHslCommunication.Core;usingHslCommunication.ModBus;usingPLCEvent.Util;usingSystem;usingSystem.......
  • Acwing 800.数组元素的目标和,双指针初步
    Acwing800.数组元素的目标和给定升序的有序数组A(长度为n),B(长度为m)以及目标值x,求出满足\(A[i]+B[j]=x\)的数对\((i,j)\),题目保证仅有唯一解输入样例:456124734689输出样例:11双指针来做定义指针i,j,其中i指向A,j指向B,且i=0,指向A的首元素,j=m-1,指向B的末......
  • 3.3-时间序列和Resample函数
    3.3-时间序列和Resample函数  3.3.1时间序列¶index横坐标为日期数据数据导入:pandasreader3.3.2Resample函数¶计数、均值、方差、累加、累乘周期转换数据验证:for循环vs内置函数 In [ ]:pipinstallpandas_datareader ......
  • 下拉选项 数据验证 选择序列
    在Excel中设置下拉选项的步骤如下12:打开Excel,点击选中一个单元格,点击数据;然后点击数据验证;之后点击任何值边上的下拉箭头,选择序列;然后在来源中输入多个下拉选项,例如“男,女”,男和女之间用英文逗号隔开;之后我们点击确定;然后我们点击下拉箭头;可以看到里面有很多个下拉选项可以选择。......
  • TSMixer:谷歌发布的用于时间序列预测的全新全mlp架构
    这是谷歌在9月最近发布的一种新的架构TSMixer:Anall-MLParchitecturefortimeseriesforecasting,TSMixer是一种先进的多元模型,利用线性模型特征,在长期预测基准上表现良好。据我们所知,TSMixer是第一个在长期预测基准上表现与最先进的单变量模型一样好的多变量模型,在长期预测......