GET!

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

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

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


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

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

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

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

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

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

扫描二维码关注公众号,回复: 3959933 查看本文章

猜你喜欢

转载自www.cnblogs.com/ve-2021/p/9918263.html
get