单调栈和队列
文章平均质量分 60
ZigZagK
一个蒟蒻。
展开
-
【单调栈 or 分治】51Nod1215[数组的宽度]题解
题目概述给出一个序列 {An}\{A_n\} ,求 ∑ni=1∑nj=imax{ai,ai+1,⋯,aj}−min{ai,ai+1,⋯,aj}\sum_{i=1}^{n}\sum_{j=i}^{n}max\{a_i,a_{i+1},\cdots,a_j\}-min\{a_i,a_{i+1},\cdots,a_j\} 。解题报告水博客again,这道题显然是一道单调栈的题目(用单调栈处理出每个元素作为原创 2017-09-18 21:47:20 · 465 阅读 · 0 评论 -
【队列】NOIP2016Day2T2[蚯蚓]题解
解题报告哇直接用堆……然后发现 m=7×106m=7\times 10^6 ,用堆只有 8080 分。首先每次增长只是相对的,所以我们可以使被选出的蚯蚓减少长度而不是让其他蚯蚓增加长度。然后我们观察一下每次切蚯蚓,会发现被切的的蚯蚓比原来的蚯蚓短(且不变长),也就是说每次选出的蚯蚓长度是递减的。这就很棒啊,有单调性的话用三个队列就可以了。示例程序#include<cstdio>#include<a原创 2017-10-18 16:50:06 · 313 阅读 · 0 评论 -
【贪心+ST算法+单调栈】51Nod1288[汽油补给]题解
题目概述有 n+1n+1 个城市, 00 是起点 nn 是终点,开车从 0→1→2⋯→n0\to 1\to 2\cdots\to n ,车每走 11 个单位距离消耗 11 个单位的汽油,油箱的容量是 TT 。给出每个城市到下一个城市的距离 DD ,以及当地的油价 PP ,求走完整个旅途最少的花费。如果无法从起点到达终点输出 −1-1 。解题报告以前做过的贪心题……贪心想法不难,主要是要考虑完整。从原创 2017-10-20 16:30:32 · 557 阅读 · 0 评论 -
【单调队列】BZOJ1047(HAOI2007)[理想的正方形]题解
题目概述有一个 a×ba\times b 的整数组成的矩阵,从中找出一个 n×nn\times n 的正方形区域,使得该区域所有数中的最大值和最小值的差最小。解题报告水博客……解法很多,可以二维ST表,线段树套线段树(雾)……O(n)O(n) 解法好……先按照行做单调队列预处理出每个点向左推 nn 个的极值,然后按照列做单调队列求出每个点向上向右推 nn 个的极值就行了。示例程序#include<c原创 2017-11-01 22:25:44 · 286 阅读 · 0 评论