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

GET!

时间:2018-11-06 22:33:32      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:问题   端点   条件   左右   个数   处理   压缩   bsp   区间   

ve傻逼get到的高端套路操作。

由于本人只会暴力,所以可能一些各位看起来傻逼的操作我觉得也挺高端的。

没有办法,本人实力菜鸡。


题目:给出一个序列,给出m对左右端点,询问这m个区间的最大值。

题解:用单调栈维护每个数左边第一个比它大的数,询问一个区间 [l,r] 的时候,找到比 r 大的数中位置不在l之前的。将每个数之前第一个比它大的数建为一棵树,按照区间询问的左端点排序,进行路径压缩。

 

题目:给定一个正整数序列,求出所有子区间中第k小。

题解:数组的值均为正整数,想到二分总值。子区间的和,我们当然用前缀和优化

 

题目:给定一个序列,求环形最大子段和。

题解:处理环形问题,一般在后面复制一遍原序列。然后跟上一题一样写吗。。。本题条件序列不一定为正整数哇。套用上一题失效。其实只要做一遍最大子段和和最小子段和,并且保证最大最小子段的左右端点不包含且不相交即可。答案为最大子段和减去最小子段和。

 

GET!

标签:问题   端点   条件   左右   个数   处理   压缩   bsp   区间   

原文地址:https://www.cnblogs.com/ve-2021/p/9918263.html

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