(闫氏dp分析法)(线性dp)(区间类dp)AcWing 895. 最长上升子序列

简介: (闫氏dp分析法)(线性dp)(区间类dp)AcWing 895. 最长上升子序列

题目链接

AcWing 895. 最长上升子序列 - AcWing

一些话

切入点

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

区间长度类的最优解,符合dp特征(maxn)

数据范围

1≤N≤1000

1e3的数据范围,符合dp特征

流程

// 状态表示,用一维f[i]来表示以a[i]为结尾的最大上升子序列长度

            属性是最大值

// 状态计算,找最后一位不同的作为分界点

           最后一位都是a[i],相同,继续往前找

           // a[i-1],有不同,不是所有情况都包含,开始划分集合:

           a[1] ~ a[i-1]

           a[2] ~ a[i-1]

           a[3] ~ a[i-1]

           …………

           a[i-1] ~ a[i-1]

            空


           在里面找出最大值

            划分出来的这部分集合的最大值就等价于f[i-1](以a[i-1]为结尾的最大上升子序列),在前一层中可以求到


划分出来的集合


           a[1] ~ a[i-1]

           a[2] ~ a[i-1]

           a[3] ~ a[i-1]

           …………

           a[i-1] ~ a[i-1]


“空”代表的原本是a[i],所有集合减去a[i]后,原本表示a[i]的集合就变成了空


(,按照这样一直到第一层

套路

区间类的最优解dp

{

f[i]集合表示成以a[i]为结尾的区间

集合划分成不同起点到a[i-1],等价于f[i-1]来计算

}

ac代码

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstring>
using namespace std;
const int N = 1100;
int f[N],a[N];
int main(){
    int n;
    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 res = 0;
    for(int i = 1;i <= n;i++){
        res = max(f[i],res);
    }
    cout << res << endl;
    return 0;
}
目录
相关文章
|
小程序 JavaScript 算法
开源轻量级 IM 框架 MobileIMSDK 的微信小程序端已发布!
MobileIMSDK - 微信小程序端是一套基于微信原生 WebSocket 的即时通讯库:
449 0
|
存储 5G C语言
JavaFile实现对文件txt内容的增删该查操作
JavaFile实现对文件txt内容的增删该查操作
117 0
|
供应链 Python
Demand Forecasting模型解释与Python代码示例
Demand Forecasting模型解释与Python代码示例
|
运维 安全 API
"揭秘阿里云无影:如何颠覆传统IT,引领未来云计算趋势的神秘力量?"
【8月更文挑战第21天】近年来,云计算深刻改变了企业的IT架构与运营模式。作为国内领先云服务商,阿里云推出的无影云电脑成为创新典范。无影是一种无需实体形态的计算服务,用户可通过终端随时随地访问云端资源。通过帮助大型制造企业实现IT基础设施统一管理、降低运维成本、保障数据安全等,以及支持初创企业低成本快速构建IT环境、按需调整资源、提高工作效率,无影展现了简化IT、提高安全性、灵活资源调配及移动办公等未来云计算趋势。
364 0
|
缓存 负载均衡 安全
探索API接口开发(定制与开发接口)
在当今数字化、互联互通的时代,API(应用程序编程接口)已经成为连接不同软件、服务和应用的关键桥梁。API接口开发,作为软件架构和系统设计的重要组成部分,不仅影响着数据交换的效率,更决定了整个系统的灵活性和可扩展性。本文将深入探讨API接口开发的各个方面,包括其重要性、开发流程、最佳实践以及面临的挑战。
|
监控 安全 关系型数据库
稳定性之故障应急处理流程
尽管可以通过稳定性体系建设,来避免出现生产系统故障。但是仍然无法彻底避免一点风险都不会产生,当稳定性风险产生后,怎么快速协调组织,缩短故障时长,科学的流程呢?
稳定性之故障应急处理流程
|
设计模式 架构师 程序员
DDD洋葱架构才是 yyds!阿里大牛手记(DDD)领域驱动设计应对之道
虽然身为架构师,设计一个高质量的架构依然是复杂与困难的。 简单来说,动用大量的资源只为了一套优质的三高架构并不正确,而是该在了解当前业务现状的情况下,创造出灵活、可维护、健硕能成长的。
IT:银行类金融科技岗笔试习题集合—各大行(工商+建设+农业+浦发+招商+平安+人民+邮政银行)计算机信息科技岗笔试集合(包括计算机基础知识+网络+操作系统+数据库系统原理)
IT:银行类金融科技岗笔试习题集合—各大行(工商+建设+农业+浦发+招商+平安+人民+邮政银行)计算机信息科技岗笔试集合(包括计算机基础知识+网络+操作系统+数据库系统原理)
IT:银行类金融科技岗笔试习题集合—各大行(工商+建设+农业+浦发+招商+平安+人民+邮政银行)计算机信息科技岗笔试集合(包括计算机基础知识+网络+操作系统+数据库系统原理)
|
Shell Linux Unix
du 使用详解 linux查看目录大小 linux统计目录大小并排序 查看目录下所有一级子目录文件夹大小 du -h --max-depth=1 |grep [
常用命令 du -h --max-depth=1 |grep [TG] |sort   #查找上G和T的目录并排序 du -sh    #统计当前目录的大小,以直观方式展现   du -h --max-depth=1 |grep 'G' |sort   #查看上G目录并排序 du -sh ...
9572 0