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

LIS 略解

这是一个非常经典的问题。

有两种解法,一种是 \(\mathcal O(n ^ 2)\) 的动态规划做法,一种是 \(\mathcal O(n \log n)\) 的贪心做法。

  • 动态规划做法

\(dp_i\) 为以第 \(i\) 个数字结尾的最长单调增加序列。

然后枚举每个 \(j\) 使得 \(j < i\)。如果发现 \(a_j < a_i\) 就可以转移,\(dp_i = dp_j + 1\)

如果求单调不减序列,把 \(<\) 换成 \(\leq\) 即可。

复杂度 \(\mathcal O(n ^ 2)\)

代码自己写罢(

  • 贪心做法

重心还是放在这个做法上。

想象有很多不同长度的单调增加序列,我们现在有一个新元素,那么就是要把它接在之前的单调增加序列上。

我们设 \(f_i\) 为长度为 \(i\) 的单调增加序列最后一个数字的最小值。

这样的话,由于我们已经取了最小值,\(f_i\) 代表的肯定是长度 \(i\) 最容易接上的一个子序列了。

这个时候证明一下 \(f_i\) 有单调不减的性质。

反证法,就是如果有一个长度比当前单调增加序列长,而且最小值还要更小的单调增加序列,那肯定是取不到当前的单调增加序列的,就会取这个单调增加序列的子序列了。


好的!最重要的说完啦!

接下来是具体实现。

贪心的想法是,我们要把目前这个元素接在它能接的最长单调增加序列上。

所以直接二分,找长度最长的,还允许新元素接上的 \(f_i\) 即可。

#include <bits/stdc++.h>
using namespace std;
constexpr int N = 1e5 + 5;
int len, n, ans, 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) {len = lower_bound(f + 1, f + ans + 1, a[i]) - f;f[len] = a[i];ans = max(ans, len);}cout << ans;return 0;
}

如果想要求最长的单调不增序列,换成 upper_bound 就行。你可以想象一下,换成 upper_bound 之后,当有多个 \(f_i\) 相同时,他就会选择 \(i\) 最大的 \(f_i\),即长度最长的。

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

相关文章:

  • 低代码如何引爆全员创新?揭秘技术民主化背后的蒲公英效应
  • 低代码如何重塑IT部门价值?
  • 2025工业冰水机/冷水机厂家推荐东莞市凯诺机械,高效制冷稳定运行
  • 2025小型低温/工业/风冷/一体式螺杆冷冻机厂家推荐:东莞凯诺机械专业制冷解决方案
  • 2025水冷螺杆/风冷螺杆冷水机厂家推荐东莞市凯诺机械,高效制冷稳定可靠
  • (例题)HTTPS 电商商品页抓包与关键数据提取
  • qoj.4878 Easy Problem 做题记录
  • LLM学习笔记DAY10
  • 日志级别
  • noipd8t2 - Slayer
  • OJ模拟面试3(异步判题架构)
  • Edge浏览器网页设置深色模式(仅搜索结果界面)
  • 2025 年 AI 编程工具 TOP5 排名:谁在重新定义研发效率?
  • 请求中断的原理与分类
  • LLM学习笔记DAY9
  • 【Go】go学习笔记
  • 破局内容运营效率:2025 微信编辑器 10 款深度测评
  • Web3 行业 Solidity 高级后端开发工程师岗位要求
  • 2025氮化硼陶瓷高温绝缘体/坩埚/套管/基板/高温构件/耐腐蚀构件推荐榜:福维科(山东)引领国产化,3 家企业凭技术实力登榜
  • 无需接入执行器,0 代码改造实现微服务任务调度
  • 利用排列组合法实现TOPN路径计算
  • 达梦数据库获取判断字段中的json数据中的值
  • 2025 废气处理/废气治理/环保/污水/分子筛/除臭设备推荐榜:上海深城以专利技术破局,3 家企业凭场景适配登榜,助力异味治理升级
  • API 搜索的下一代形态-Apipost智能搜索:只需用业务语言描述需求,就能精准定位目标接口!
  • 2025包装机/全自动包装机/非标定制生产线厂家推荐昆仑智能装备,专业高效!
  • 2025拖鞋机/酒店拖鞋生产线厂家推荐昆仑智能,高效稳定自动化解决方案
  • 2025年口罩机厂家权威推荐榜单:全自动口罩机器,全自动KN95口罩机,高效智能生产线专业选购指南
  • [sed] replace the first line with certain info
  • FastDFS 安装部署 数据迁移 centos 安装 FastDFS
  • 2025摩托车厂家推荐:浙江天鹰机车,专业制造与创新设计之选