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

关于最长上升子序列(LIS)

LIS已经有很多dalao讲过了,而我这个蒟蒻愣是连方程都没推出来(我好菜)


于是乎,我就用个记忆化来写。

思路

既然是搜索,那么就先找条件。
本题的条件是 \(a_{1} < a_{2} < …… < a_{n}\)
那么便可写出

if(a[i] < a[n]) ans = max(ans, dfs(i) + 1);

好了,说记忆化。

记忆化

记忆化就是把之前算过的东西存起来,要用的时候再拿出来。
只要加上这两行:

if(dp[n] > 1) return dp[n];
//其他东西
return dp[n] = ans;

代码

#include<bits/stdc++.h>
using namespace std;
int dp[210];
int out = 0, a[210];
int dfs(int n){int ans = 0;if(dp[n] > 1) return dp[n];for(int i = 1; i < n; i++)if(a[i] < a[n]) ans = max(ans, dfs(i) + 1);out = max(ans, out);return dp[n] = ans;
}
int main(){int i = 1;while(cin >> a[i]) i++;for(int j = 1; j <= i; j++) dfs(j), dp[j] = 1;cout << "max=" << out + 1;
}

完结撒花 \(\^_^/\)

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

相关文章:

  • Python掌控Android设备的终极指南:pure-python-adb完整教程
  • 【限时开放】钯金印相AI复刻密钥库(含37个私藏种子ID+金属颗粒噪声叠加参数表):仅剩最后43份,工程师级调参文档同步解锁
  • Vue-Admin-Box数据可视化终极指南:基于ECharts的图表组件最佳实践
  • 基于RK3568核心板的智能家居控制器:从芯片选型到量产实战
  • IM即时通讯源码/im源码基于uniapp框架从0开始设计搭建在线聊天系统
  • 10分钟搞定外文漫画翻译:BallonsTranslator零门槛入门指南
  • Vital合成器引擎揭秘:从波形生成到频谱处理的完整流程
  • 【独家】ElevenLabs未公开的葡语语音参数调优矩阵(基于172小时真实客服语音AB测试):立即提升自然度+28%
  • Spectre:支持编译时契约评估,可转换 C 代码的安全底层编程语言!
  • 洞察 | (二)视觉映射、感知优化与色彩工程
  • 如何免费下载30+平台文档:kill-doc完全使用指南
  • 别再死记硬背了!用几个生活化例子,帮你彻底搞懂C#里的virtual关键字
  • Glur:SwiftUI渐进模糊效果库的终极指南
  • TestableMock多场景应用:从基础Mock到复杂业务逻辑测试
  • SSHFS-Win:让Windows像访问本地硬盘一样操作远程服务器文件
  • Reset-Windows-Update-Tool架构解析:Windows更新故障的深度修复方案
  • 不只是连线:用立创EDA做PCB布局时,这7个工程师才知道的实用技巧
  • Wormhole SDK 使用教程:如何在 10 分钟内集成跨链功能
  • 六足机器人技术架构深度解析:从18自由度到智能步态控制的创新实践
  • 参数失控?画风平庸?Midjourney抽象表现主义进阶必修课,含5套已验证Prompt模板+权重调试日志
  • gRPC-rs 安全实践:如何配置 TLS 证书和实现双向认证 [特殊字符]
  • cliclick 安全实践:正确配置macOS辅助功能权限
  • RK3576开发板部署火焰检测算法:从模型部署到工程实践
  • Linux系统下Vue开发环境搭建全攻略:从Node.js到Vite实战
  • 别再只会用@PreAuthorize了!SpringSecurity权限控制的5种实战姿势与避坑指南
  • 高效自动化ADB驱动配置解决方案:一键完成Android调试环境搭建
  • Ardb源码深度解析:从网络层到存储引擎的完整架构设计
  • Go语言并发模式与高性能编程技巧
  • CodeCursor配置全攻略:自定义API密钥与模型选择的最佳实践
  • 基于Adafruit Gemma M0与NeoPixel的可编程交互发光头饰制作全攻略