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

单调队列

时间:2015-07-04 19:47:22      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

bzoj1047 理想的正方形

题目大意:求a*b的矩阵中一个n*n的子矩阵,使得子矩阵的最大值和最小值的差最小。

思路:一开始认为能用二维线段树a掉,但lcomyn大神写了一下,结果T了,于是就寻找新的写法。借鉴了斜率优化的思路,发现单调队列可以优越的做到O(ab)的求出整个矩阵中每个点左面延伸n位的最值。我们用行上的单调队列维护出这个之后,再从列上单调队列一下,就能求出一个n*n子矩阵的最值了,然后比较一下,输出答案。注意这里单调队列中的是下标(这样写可能会有一些好处),所以写的时候要对应到数组中。

技术分享View Code

 

单调队列

标签:

原文地址:http://www.cnblogs.com/Rivendell/p/4621121.html

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