单调栈描述

来源:互联网 发布:mysql where 编辑:程序博客网 时间:2024/06/05 20:39
美学空间:如果对于区间[Si,Sj](1<=i<j<=n)中任意的花篮都比Si高且比Sj低,那么这个区间称为一个美学区间。

1。枚举区间,找最小值一般复杂度太高不考虑
2。枚举点,找区间让每个点作为最低点。
针对思路二:
单调栈: 顾名思义就是在入栈时遵循单调原则,可以求出一个元素向左(或向右)所能扩展到的最大长度,并不是说在这一段区间内是单调的,而是保证在该区间内该元素一定是最大或最小;

单调栈主要是大家要自己枚举,需要找到每个元素最左能扩展到那 ,最优能扩展到那,当然最小的是你枚举的那个元素。

我们有如下的性质:
1. 如果当前元素大于前一元素,那么前一元素能扩展到当前元素,同时说明前面的数对当前元素来说是没有贡献的
2。如果当前元素等于前一元素,那么前一元素也能扩展到当前元素,同时说明前面的元素是可以被忽略的
3。如果当前元素小于前一个元素,那么前面至少有一个元素不能扩展到当前元素的位置,那么这些不能继续扩展的元素的存在显的没有什么意义了,不妨删除它。

我们得到两条结论:
1。一旦一个元素已经进入栈中那么这个元素向左扩展的位置就确定下来了.
2。一旦一个元素出栈被弹出栈,那么这个元素向右扩展的位置也确定下来了.

不能一直维持栈,使其一开始下降就全部弹出栈,因为在要求的区间内不一定非得是单调。

转自:http://blog.chinaunix.net/uid-26602509-id-3268716.html

0 0