码迷,mamicode.com
首页 > 其他好文 > 详细

LIS (nlogn)

时间:2020-12-07 12:29:58      阅读:6      评论:0      收藏:0      [点我收藏+]

标签:nbsp   遇到   lin   als   ram   修改   inline   bsp   -128   

dpdp+树状数组O(n lg n)O(n lg n)

注意到我们在状态转移的时候要枚举f[j]f[j]的最大值来转移,我们可以考虑使用数据结构来维护从而优化一下,只要是支持单点修改和区间最值查询的数据结构都可以这么做,分块(O(nn??√))(O(nn))和树状数组(O(n lg n))(O(n lg n)),线段树(O(n lg n))(O(n lg n))之类的都行,但是因为树状数组比较好写,所以我们只讲解树状数组的写法

  1. 先按权值排序,排序之后再查询序号前最大的f[j]f[j]来转移,但是有一点要注意,我们求的是LIS,是严格上升的,所以我们遇到重复的权值的时候应该要放在最后一次性处理,不然后面的重复了的f[]f[]就能够用前面相同的元素来转移,导致最后的答案是错误的

LIS (nlogn)

标签:nbsp   遇到   lin   als   ram   修改   inline   bsp   -128   

原文地址:https://www.cnblogs.com/wifimonster/p/14073348.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!