标签:直接 team histogram enqueue org 部分 第一个 原来 没有
dfs题,亏我想了那么久。。。
单调栈。
我们假设已经选定了某一个高度,得到了一个确定的长度。
现在我们向后扫,由于我们在当前高度已经最长了,所以接下来肯定会变小。那多余的部分我们就可以都抛弃了。
这样子的话我们就可以不用考虑原来的轮廓,而是转换为考虑一系列高度递增的矩形。
我们可以建立n个queue(Q1,Q2,...Qn),然后还有一个Q0用来存储每一组在队列中最前面的那个元素。
当我们ENQUEUE的时候,先看这一组有没有元素已经出现,如果有就直接把这个元素加到对应的Q下面去,否则还需要将组编号加到Q0去。
当我们DEQUEUE的时候,将Q0中第一个那一组的第一个弹掉,如果空了,就把Q0的第一个也弹掉。
标签:直接 team histogram enqueue org 部分 第一个 原来 没有
原文地址:https://www.cnblogs.com/ilverene/p/11148829.html