
数据结构 -- 单调队列
Object_S
Java C++
展开
-
历史的进程——单调队列
基本概念 单调队列是一种能保证队列内元素单调性的队列。 与优先队列的不同之处在于,单调队列保持了元素的下标连续性。 复杂度O(n) 具体过程 单调队列在每增加一个元素之前,都先将队列头部大于/小于(具体取决于单调队列的单调性)将要增加的元素的所有元素清除掉,再增加要增加的元素。 由于对于每一个增加的元素都进行了以上操作,每增加完一个元素单调队列内部都保持了单调性。 在保持单调队列的基本...原创 2019-07-05 13:04:15 · 137 阅读 · 0 评论 -
[IOI2008]Island
题目地址 思路: 无向基环树森林求直径和。 对于每颗基环树,它对答案的贡献只有可能经过环或不经过,分类讨论即可。 首先处理出每个点往下的最大深度,顺便进行树形DP,再用单调队列获取经过环时的答案即可。 最终树形DP与单调队列的结果取max即可。 (注意内存,数组需要使用技巧二次利用) (该代码内存超限) #pragma GCC diagnostic error "-s...原创 2019-07-07 01:16:35 · 299 阅读 · 0 评论