![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单调队列/单调栈
KetchupZ
退役acmer一名,CCPC银+ICPC铜(欢迎大家访问我的Github地址:https://github.com/LieLieLiekey)
展开
-
计蒜客- 2019计蒜之道D
计蒜客- 2019计蒜之道D. “星云系统”(单调队列/单调栈)题意: 现在给定你一个字符串 sss 以及一个整数 kkk,请求出 sss的字典序最小的长度为 kkk的子序列。数据范围:0<k≤∣s∣≤50000000<k≤∣s∣≤50000000<k≤∣s∣≤5000000样例输入:helloworld5样例输出:ellld思路:假如...原创 2019-07-07 17:40:45 · 236 阅读 · 0 评论 -
HDU - 3706 Second My Problem First (单调队列)
HDU - 3706 Second My Problem First (单调队列)这题与洛谷的滑动窗口那题比较像,不过那题是维护两个单调队列,不过这题只能用线性的方法做。而且还不能开1e7的数组,会MLE.题目:题意: 给出一个n,A,B。其中Si=Ai%BS_i=A^i \% BSi=Ai%B ,Ti=Min(Sk),i−A<=k<=i,k&...原创 2019-07-07 17:41:17 · 193 阅读 · 0 评论 -
HDU3530 Subsequence 单调队列
HDU3530 Subsequence 单调队列题目:题意:给你一个长度为n的数组,要求一段连续的子序列满足子序列中最大值减去最小值在[m,k][m,k][m,k]范围内。求该子序列的最大长度。思路:我们假设区间右边界为iii,然后求下标[1,i][1,i][1,i]中满足最大值减去最小值在[m,k]范围内的最小左边界。我们可以用单调队列维护一个当前前缀最大值序列和最小值序列。可以用下列...原创 2019-07-07 17:42:21 · 177 阅读 · 0 评论 -
洛谷1886滑动窗口(单调队列)
洛谷1886滑动窗口(单调队列)题目:可以使用线段树或mulitset,时间复杂度是O(nlogn)。使用单调队列时间复杂度为O(n)思路: 用两个单调队列分别维护最大值和最小值。并记录下每个数的id,取时如果不在窗口范围则舍去。代码:#include<bits/stdc++.h>#define mset(a,b) memset(a,b,sizeof(a))using...原创 2019-07-07 17:43:11 · 278 阅读 · 0 评论 -
单调队列和单调栈小结
单调队列和单调栈我所认为的单调队列就是单调栈+取操作。刚开始学单调栈的时候,翻开一篇单调栈的博客就能看到单调队列。后来才发现单调队列=单调栈+取栈底(出栈底)单调栈什么是单调栈?来自某b乎:单调栈是一种理解起来很容易,但是运用起来并不那么简单的数据结构。 一句话解释单调栈,就是一个栈,里面的元素的大小按照他们所在栈内的位置,满足一定的单调性。栈这样的数据结构满足先进后出。假设...原创 2019-07-07 21:28:31 · 197 阅读 · 0 评论 -
HDU-4122 Alice's mooncake shop 单调队列
HDU-4122 Alice’s mooncake shop 单调队列题目: HDU - 4122 题意:输入:第一行两个数n,m. 代表n份订单 m小时制作月饼.接下来有n行,每一行有订单的时间 (月 日 年 小时) 和 需要月饼的数量cnt .接下来一行两个数T,timecost. 代表每个月饼的保质期为T 放冰箱每小时需要timecost的代价.接下来有 mmm 行,第ii...原创 2019-07-07 21:31:48 · 195 阅读 · 0 评论