当前位置: 首页 > news >正文

动态规划专题5:最长上升子序列

描述

给定一个长度为 N 的整数序列 A

找到一组最长的整数序列 x 满足:

1    <=    x1    <    x2    <    ...    <    xk    <=    N

A[x1] < A[x2]  <    ...     <   A[xk]

即寻找 A 的一个最长子序列,满足:

该子序列中每个元素递增

输入描述

第一行一个整数N(N<=1000) 表示长度,第二行 N个数 A[i]表示序列里面的数,每个数不超过int范围。

输出描述

一行 表示最长递增子序列的长度

用例输入 1 

6
1 6 2 5 4 7

用例输出 1 

4

例1中,最长上升子序列为:

1 6 2 5 4

1 6 2 5 4 7。

利用线性动态规划。

#include <bits/stdc++.h>
using namespace std;
int s[1010],dp[1010],mx,n;
int main(){cin>>n;if(n==1){//特判cout<<1;return 0;}for(int i=1;i<=n;i++){//每个格子都是一个上升子序列cin>>s[i];dp[i]=1;}for(int i=2;i<=n;i++){for(int j=1;j<i;j++){if(s[i]>s[j]){dp[i]=max(dp[i],dp[j]+1);mx=max(mx,dp[i]);//只要前面格子的值比它小,他与前面那个格子所组成的上升子序列即为前一个格子所组成的上升子序列加上当前的格子}}}cout<<mx;return 0;
}

相关文章:

  • MIX-LN: UNLEASHING THE POWER OF DEEP LAYERS BY COMBINING PRE-LN AND POST-LN
  • 计算生物学在中国的发展情况?
  • C 语言实现 HTTP 和 HTTPS 通信的例程
  • 高度图(Heightmap)
  • H5 swiper.js slide滑动失效问题解决
  • Vert.x学习(五)—— SockJS,搭建客户端,与后端服务器进行通信
  • Tomcat与Servlet(2)
  • 【Ai】CherryStudio 详细使用:本地知识库、MCP服务器
  • 2025年4月16日华为留学生笔试第三题300分
  • LCD显示屏的使用
  • EtherCAT转ProfiNet边缘计算网关配置优化:汽车制造场景下PLC与机器人协同作业案例
  • 矫平机:工业制造中的“板材整形师“
  • 2025年华中杯赛题浅析-助攻快速选题
  • Redis--事务
  • 赛灵思 XCVU095-2FFVB2104E XilinxFPGA Virtex UltraScale
  • StarRocks Community Monthly Newsletter (Mar)
  • 简单接口工具(ApiCraft-Web)
  • RAGFlowwindows本地pycharm运行
  • 信息学奥赛:开启编程与算法之门的金钥匙
  • 【Java面试系列】Spring Cloud微服务架构中的分布式事务解决方案与Seata框架实现原理详解 - 3-5年Java开发必备知识
  • 《瞭望》周刊社原总编辑、党委书记姬斌逝世,享年67岁
  • 洗冤录|县令遇豪强:黄榦处理的一起地产纠纷案
  • 花2万多在海底捞办婚礼,连锁餐企要抢酒楼的婚宴生意?
  • 玉渊谭天丨中方为何此时同意与美方接触?出于这三个考虑
  • 秦洪看盘|交易型资金收缩,释放短线压力
  • 深圳两家会所涉卖淫嫖娼各被罚7万元逾期未缴,警方发催告书