首页 > 其他分享 >浅谈LIS

浅谈LIS

时间:2023-08-24 17:46:59浏览次数:35  
标签:浅谈 复杂度 sim LIS 序列 dp

连续上升子序列(LIS)

定义

\(一个序列中单调不减的子序列或单调递增的子序列(看题决定,做法几乎一致),下文以严格上升子序列为例\)

做法一

\(暴力dp,设f_i表示以i结尾的LIS的最长长度,f_i=max(f_j|j<i ,a_j<a_i)+1。\)
\(dp比较好理解,就是由上一个比当前小的数加上当前的数组成最长上升子序列\)
\(复杂度显然是O(n^2)的\)

做法二

\(考虑去优化上述转移方程,发现f_i是由1\sim i-1转移来的,可以用树状数组优化。\)
\(每次求完f_i对a_i进行单点加,求f_i时查1 \sim a_i-1的最大值\)
\(a_i比较大时记得离散化\)

\(复杂度降为O(nlogn)\)

标签:浅谈,复杂度,sim,LIS,序列,dp
From: https://www.cnblogs.com/cdx1221/p/17654765.html

相关文章

  • @Value注解读取yml中的map/list配置
    读取map1、配置文件写法common:map:'{"username":"lisi","password":"123456"}'2、java代码的写法@Value("#{${common.map}}")privateMap<String,Object>map;读取list1、配置文件写法common:list:1,2,32、ja......
  • 浅谈 Linux 下 vim 的使用
    Vim是从vi发展出来的一个文本编辑器,其代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。Vi是老式的字处理器,功能虽然已经很齐全了,但还有可以进步的地方。Vim可以说是程序开发者的一项很好用的工具。对于大多数用户来说,Vim刚开始学习的时候可能会进......
  • 浅谈视频汇聚平台EasyCVR中AI中台的应用功能
    AI中台是将人工智能技术如深度学习、计算机视觉、知识图谱、自然语言理解等模块化,集约硬件的计算能力、算法的训练能力、模型的部署能力、基础业务的展现能力等人工智能能力,结合中台的数据资源,封装成整体中台系统。在EasyCVR视频共享融合云平台中,AI中台是专门提供人工智能视频......
  • Keep English Level-04
    firm--坚定的,坚固的;公司share--n股份,份额executive--执行官Thereisnochance,nodensity,nofate,thatcanhinderorcontrolthefirmresolveofadeterminedsoul.--EllaWheelerwilcoxresolve--n决定;决心resolution--决定,决心resolute--a.......
  • 浅谈谷歌“网页体验”报告
    “网页体验”报告提供了您网站访问者的用户体验摘要。Google会评估您网站上各个网址的网页体验指标,并会将这些指标作为网址在Google搜索结果中的排名衡量因素。关于网页体验谷歌会针对每个网址评估网页体验。评估结果和报告旨在帮助网站创建能够为访问者提供更好用户体验的网页......
  • List<Dictionary<string, string>> 去重方法
    List<Dictionary<string, string>>可以使用LINQ的Distinct()方法来去重。不过需要提供一个自定义的Comparer。实现接口IEqualityComparerpublicclassDictionaryComparer:IEqualityComparer<Dictionary<string,string>>{publicboolEquals(Dictionary<string,st......
  • ArrayList和Vector及LinkedList的区别
    1.ArrayList和Vector的区别第一句话:ArrayList和Vector底层都是数组实现的,初始容量都为10;在ArrayList的底层,是通过定义一个DEFAULT_CAPACITY的常量来指定的,而Vector的底层,是直接在空参构造中,通过写死了一个this(10)来指定的;第二句话:Vector大部分方法的底层实现,都加了synchronized......
  • SAP Fiori Elements List Report 如何在扩展开发里使用代码获得当前选中的表格行项目
    笔者从2007年电子科技大学计算机专业硕士毕业后加入SAP成都研究院,一直从事SAP产品设计和研发工作至今,对SAP多项技术有着深入透彻的研究,尤其精通ABAP编程,SAPUI5(Fiori)应用开发和SAPOData服务开发。笔者将自己在SAP领域16年(2007~2023)的技术沉淀,进行了系统的归......
  • 如何使用 Guided Development 给 Fiori Elements List Report 的工具栏添加自定义按钮
    本教程之前的步骤,我们介绍了如何使用SAPFioriTools这个扩展包的ApplicationModeler提供的PageMap来给ListReport的Table控件添加自定义列的步骤。本文介绍另一种在FioriElements应用里进行扩展开发的方式,即FioriElementsGuidedDevelopment工具向导。按照......
  • list类的模拟实现
    一、list的介绍list文档介绍1、list是序列容器,允许在序列内的任何位置执行恒定时间的插入和删除操作,以及双向迭代。2、list底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个节点和后一个节点。3、list与forward_list非常相似:最主要的......