单调队列
luckyone2014
想思路是苦涩艰辛的,但是打代码是愉快的。
展开
-
hdu 1505 City Game 最大矩形面积 单调队列
题意: 在给的图形中,找到F组成的最大矩形面积。面积要乘以3输出。 做法: 先把每行都从左到右预处理。mp里存的是包括自己的左连续 F的个数。 预处理好之后,再一列列处理,把当前列做为右边界,然后每一列计算最大矩形面积的方法就和 hdu1506 一样了。原创 2015-03-11 22:07:34 · 857 阅读 · 0 评论 -
hdu 1506 Largest Rectangle in a Histogram 单调队列
题意: 输入n个柱子,并排放。问最大的矩形面积。 要维护两个单调队列,lft和rit。lft [i]表示i点,左边连续有比i点高的柱子的话,把最左边的柱子编号记录在lft [i]。 rit 同理,记录i的最右边连续比i高的柱子的编号。 第一个案例: id 1 2 3 4 5 6 7 h 2 1 4 5 1 3 3 lft 1 1 3 4 1 6 6 rit 1 7 4 4 7 7 7 有了lft 和rit 就可枚举每一列计算那一列向两遍扩展的最大的宽了。再乘上该列的高,就是包含该列的最大的面积了。原创 2015-03-10 21:58:48 · 598 阅读 · 0 评论