规定先维护head,head是来描述决策是否过时的变量,在此位置的变量处于极值,tail是来描述最后一位插入时应该放的位置,添加决策用tail,取决策使用head ...
分类:
其他好文 时间:
2018-08-26 18:23:58
阅读次数:
117
单调队列,顾名思义就是一个具有单调性的一个队列,可是该怎么实现呢。 用普通的队列肯定不能实现,因此我们需要用到里一个数据结构——双端队列,这个也比较容易理解,就是两头都可以进和出队的操作。 然后我们就可以进行愉快的写单调队列了。 单调队列与优先队列还不一样,优先队列只要你不主要删除,他是不会删的,但 ...
分类:
其他好文 时间:
2018-08-03 22:34:35
阅读次数:
145
P3371 【模板】单源最短路径(弱化版) P3371 【模板】单源最短路径(弱化版) P3371 【模板】单源最短路径(弱化版) 17.5K通过 56.1K提交 题目提供者HansBug 站长团 评测方式云端评测 标签O2优化高性能 难度普及/提高- 时空限制1000ms / 128MB 提交 题 ...
分类:
Web程序 时间:
2018-07-26 10:18:27
阅读次数:
274
何为单调队列? 单调队列是一个队列(废话) 而且必须同时满足下标单调和值单调两个单调特性。 跟优先队列不同,优先队列直接使用堆(heap)来实现,如何删去特定下标元素?不明。 本人喜欢用单调队列存下标,这样比存值不知道高到哪里去了。 新来一个元素,进队。之后特判长度有没有超过。超过则把最前面的元素出 ...
分类:
其他好文 时间:
2018-05-29 14:02:52
阅读次数:
155
"题目链接" 带修改莫队: 普通莫队的扩展,依旧从[l,r,t]怎么转移到[l+1,r,t],[l,r+1,t],[l,r,t+1]去考虑 对于当前所在的区间维护一个vis[l~r]=1,在修改值时根据是否在当前区间内修改即可。 块大小取$O(n^{\frac{2}{3}})$,排序依次按左端点所在 ...
分类:
其他好文 时间:
2018-02-21 10:45:54
阅读次数:
119
题目:http://poj.org/problem?id=2823 单调队列模板。 代码如下: ...
一.queue模版类的定义在<queue>头文件中。 queue与stack模版非常类似,queue模版也需要定义两个模版参数,一个是元素类型,一个是容器类型,元素类型是必要的,容器类型是可选的,默认为dqueue类型。 定义queue对象的示例代码如下: queue<int>q1; queue<d ...
分类:
编程语言 时间:
2017-12-09 00:46:54
阅读次数:
225
在 c++ 的 stl 库中有封装好的 优先队列 1. 2 . 3. 模板: ...
分类:
其他好文 时间:
2017-11-03 13:03:12
阅读次数:
103
继续浏览c++ primer 看到模板与泛型编程这章。就顺便把这几节的代码综合了下,对一个Queue队列模板的实现 贴一下代码(看完书。自己敲,忘记了哪再看下书) #include <ostream> using std::ostream; //声明Queue的模板类 template <class ...
分类:
编程语言 时间:
2017-05-04 18:26:46
阅读次数:
192