题目链接
题目类型:RMQ
题目来源:BestCoder Round #86
题目分析
题目大意
解析
求出数组b[i]表示a[i]和a[i-1]差的绝对值,再求出数组c[i]表示a[i-1]和a[i+1]之间的最大值,将数组b录入到ST表中,每次查询只需要将1~n-1的区间去掉a[i]影响的两个数的值所形成的两个区间的最大值,再查询一下新生成的数字,看看哪个大,加上即可。几乎是O(n)的做法吧。
代码
1 |
|
Pursue excellence; Strive for perfection.
题目类型:RMQ
题目来源:BestCoder Round #86
求出数组b[i]表示a[i]和a[i-1]差的绝对值,再求出数组c[i]表示a[i-1]和a[i+1]之间的最大值,将数组b录入到ST表中,每次查询只需要将1~n-1的区间去掉a[i]影响的两个数的值所形成的两个区间的最大值,再查询一下新生成的数字,看看哪个大,加上即可。几乎是O(n)的做法吧。
1 | #include <set> |