单调栈、单调队列、线段树、LCA、二维树状数组、Bitset讲解
转自lzj209一、单调栈1.问题引入考虑这样一个问题,给出一个数字序列,一段连续的子序列的权值定义为这个子序列中最小的权值乘以子序列的长度,求最大的子序列权值,数据范围O(n)可过。2.问题转化稍加思索我们可以得到一个O(n^2)的算法,但是显然是太慢,我们想办法换一种枚举方式,假如我们枚举每一个数作为最小值,计算这个序列最大能扩张多长,那么这样就优化成了O(n)个数进行比较,于是只要能快速算出一
转载
2017-09-22 15:24:54 ·
579 阅读 ·
0 评论