摘要: 这题我们可以联想为普通的最长上升子序列,既f[i]=max(f[j])+1;i>j 所以这个就有了后效性,我们只关注他的左区间对答案的贡献,也就是j<=mid i>=mid+1; 所以顺序就变为了左边,中间,右边 By:大奕哥 LIS的dp很简单,三维偏序,max[j]<a[i] a[j]<min[ 阅读全文
posted @ 2017-12-20 21:55 大奕哥&VANE 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 题目要求是求出两个序列中处于相同位置区间并且最大值相同的区间个数,我们最直观的感受就是求出每个区间的最大值,这个可以O(N)的求,利用单调栈求出每个数作为最大值能够覆盖的区间。 然后我们可以在进行单调栈的时候统计一下答案,怎么统计呢?就是在一个数列弹栈的时候在另一个数列的单调栈中找到这个数,然后分别 阅读全文
posted @ 2017-12-20 19:36 大奕哥&VANE 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 这题与之前那道区间最值的题非常类似,依旧是二分区间,然后统计跨过中间点的区间贡献。 我们要选出小于等于和小于的,这样就可以算出相等的区间长了。 复杂度O(nlogn) By:大奕哥 阅读全文
posted @ 2017-12-20 18:41 大奕哥&VANE 阅读(166) 评论(0) 推荐(0) 编辑