摘要: 这个裸题,滑动窗口求最大最小值,单调队列来两边,一次单调递增q[s]就是最小值,一次单调递减q[s]就是最大值 cin会超时,解除同步也没用。。。 #include<map> #include<set> #include<cmath> #include<queue> #include<stack> 阅读全文
posted @ 2017-07-12 23:08 walfy 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 这一次又崩了,最后只a了一题(还是被hack后才发现的错误) 第一题水题,多用一个数保存2-1后的数,注意先用2的桌子,再用这个 #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include< 阅读全文
posted @ 2017-07-12 22:11 walfy 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 给一系列并排的矩形,宽都是1,长不同,求最大的矩形(可被上述矩形覆盖)的面积 单调栈,栈中元素为每个值所在的位置,记录下从每个值大于当前值所能到达最远的左边和右边的距离,此时中间的值一定是最小,然后H*(R-L)即当前点所能覆盖的最大面积 #include<map> #include<set> #i 阅读全文
posted @ 2017-07-12 21:16 walfy 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 有一个数列,对于每一个数,求比它小的在他右边距离他最远的那个数和他的距离 用单调队列做,维护单调队列时可采用如下方法,对于每一个数,如果队列中没有数,则加入队列,如果队列头的数比当前数大,则舍弃该数 对于此题,可用两个队列来维护,一个保存值,一个保持位置,每次查询对值进行二分,然后到对应保持位置的队 阅读全文
posted @ 2017-07-12 21:09 walfy 阅读(281) 评论(0) 推荐(0) 编辑