随笔分类 -  ACM之数据结构

摘要:一、单调栈 定义: 单调栈,顾名思义就是说栈内的元素,按照某种方式排序下,必须是单调的。如果新入栈的元素破坏了单调性,就弹出栈内元素,知道满足单调性。它可以很方便地求出某个数的左边或者右边第一个比它大或者小的元素,而且总时间复杂度O(N)。 应用举例:poj-2559 题目大意: 给出一个柱形统计图 阅读全文
posted @ 2016-03-08 14:33 WCB-ACM 阅读(913) 评论(0) 推荐(0)
摘要:首先了解一下基本概念: 重儿子:siz[u]为v的子节点中siz值最大的,那么u就是v的重儿子。 轻儿子:v的其它子节点。 重边:点v与其重儿子的连边。 轻边:点v与其轻儿子的连边。 重链:由重边连成的路径。 轻链:轻边。 剖分后的树有如下性质: 性质1:如果(v,u)为轻边,则siz[u] * 2 阅读全文
posted @ 2016-03-05 20:48 WCB-ACM 阅读(486) 评论(0) 推荐(0)
摘要:分块算法主要用于给定序列的区间询问问题,能够以较小的时间代价暴力求解,时间复杂度一般在O(n*n^0.5)。关键在O(1) 维护好某一区间在增加或者减少一个边界元素所带来的影响。需要注意的就是在更新的区间的时候要先放大在缩小,否则可能出现当前区间左右边界互换的情况,这 个影响某一些题可能没有影响,但 阅读全文
posted @ 2015-11-09 22:13 WCB-ACM 阅读(488) 评论(0) 推荐(0)
摘要:Aho-Corasick automaton,该算法在1975年产生于贝尔实验室,是著名的多模式匹配算法之一。 KMP算法很好的解决了单模式匹配问题,如果有了字典树的基础,我们可以完美的结合二者解决多模式匹配问题。 在KMP算法中,我们预先根据待匹配串自身的信息得到失配指针,使得在每次匹配不成功后, 阅读全文
posted @ 2015-10-22 23:52 WCB-ACM 阅读(514) 评论(0) 推荐(0)