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

每日一题————2026-6-28 最长上升子序列加强版(线性DP版)

最长上升子序列加强版

题目描述

给出一个由 n个不超过 10^9的正整数组成的序列。请输出这个序列的最长上升子序列的长度。

最长上升子序列是指,从原序列中按顺序取出一些数字排在一起,这些数字是逐渐增大的。

输入格式

第一行,一个整数 n,表示序列长度。

第二行有 n 个整数,表示这个序列。

输出格式

一个整数表示这个序列的最长上升子序列的长度。

输入输出样例

输入样例1:
7 3 1 2 5 4 9 7
输出样例1:
4

说明

对于20%的数据:n<=10

对于80%的数据:n<=5000

对于100%的数据:n<=1000000

对于嵌套循环超时的部分数据,可以采用二分优化:

【耗时限制】1000ms 【内存限制】512MB

参考AC代码:

#include <bits/stdc++.h>

using namespace std;

using LL = long long;
LL n, a, len, dp[1000010];

//可以用二分优化,下界
LL lower(LL l, LL r, LL x){
while (l < r){
LL mid = (l + r) >> 1;
if (dp[mid] >= x) r = mid;
else l = mid + 1;
}
return l;
}
int main(){
scanf ("%lld", &n);
for (LL i = 1;i <= n;i ++){
scanf ("%lld", &a);
if (len == 0 || dp[len] < a) dp[++ len] = a;
else dp[lower(1, len+ 1, a)] = a;
}
printf ("%lld", len);
return 0;
}

//要点:用二分进行优化,不然会超时

鼓励大家自己独立完成,不要直接抄哟~

http://www.jsqmd.com/news/1091004/

相关文章:

  • 世界模型、元宇宙、数字孪生、物理AI:它们是一回事吗?
  • AR 镀膜技术原理:为什么能减少反光?——悟赫德护景贴观复盾的抗反射实现
  • 第11天:进程基础内核认知:PCB与task_struct结构体解析
  • 企业官网的信息架构设计:从内容建模、导航到 URL 与内链
  • FreeRTOS源码详解(一)——申请和释放内存
  • MTEX工具箱:如何用5个关键功能解决材料科学家的晶体学分析难题
  • FreeRTOS源码详解(九)——Notification
  • Linux源码补充
  • 一线观察:激光焊接机器人自动上下料半年实录
  • 小红书SEO怎么做?关键词布局是第一步
  • AMD Ryzen处理器深度调试指南:5分钟掌握SMUDebugTool免费开源工具
  • [Android]appops
  • ❤️全景图鉴❤️武理计科:从C语言到毕业设计的四年技术栈演进
  • 2026沧州黄金回收白银回收铂金回收旧料回收怎么选?五家高实价铂金白银线下门店测评清单 + 联系方式
  • Claude Code强大是因为模型强还是agent实现细节?
  • 3分钟免费上手:可视化Kafka集群管理的完整解决方案
  • GlosSI:让Steam控制器支持所有Windows游戏的终极解决方案
  • 刮宫几天能洗澡洗头?刮宫术后洗护与科学子宫修护
  • League Akari 自动秒选终极指南:深度解析智能英雄选择系统架构与实战应用
  • 如何用3分钟掌握Calibre繁简中文转换插件:电子书阅读的终极语言解决方案
  • Java 线上排查标准手册:CPU 飙高、内存泄漏、接口慢,jstack/jmap/jstat 命令速查
  • 模型费用篇《DeepSeek V4-Flash 写代码“有点贵”?一文讲透模型费用真相与省心技巧》
  • 游戏公会推广系统怎么搭建?6个选型重点
  • Spring-Boot-4.0正式发布
  • Parsec VDD虚拟显示器终极指南:释放Windows显示潜能的完整解决方案
  • 预测性维护终极指南:从数据采集到机器学习落地的完整路径
  • FreeRTOS源码详解(七)——Counter
  • 应该很快就能搞定图片选择的问题了
  • TPA6140A2耳机放大器:Class-G与DirectPath技术解析与设计实践
  • 【无标题】当车间遇上比特流:我的《工业互联网组建与维护》修罗场实录