算法研究心得
文章平均质量分 75
_Occult_
物語が始まった
展开
-
Treap和Splay学习小结
最近真的是花了很大的力气来学习平衡树的内容,因为之前在弄偏序的时候提到了平衡树的内容,真的是开了一个大坑啊。 先说说treap吧,网上的资料很多,描述的也很详细,我就不细说了,这里简单的谈谈我的看法,treap就是在二叉树的基础上加了一个随机域来保证堆的性质 这样可以把树的高度维护到期望的logn级别,其他的就是一棵二叉排序树,并没有什么特别的。 我实现了指针版和数组版两种,但是说实话,在写原创 2016-02-25 01:27:53 · 4514 阅读 · 0 评论 -
关于偏序问题的一些总结
所谓偏序就是当你知道元素A,B,C时,元素A 在ACM中,这种类型的题目通常会告诉我们n个数组,每个元素的各属性对应于不同数组的同一位置的值 询问通常是回答比这元素小的有几个,或者是LIS这样的dp问题。 而解决偏序问题通常有以下方法:排序,数据结构(树状数组,线段树,平衡树),cdq分治,分块(暂时不说)。 接下来简单介绍关于维数不同的偏序该采用什么策略。 一维:这个其实不能叫做偏序,原创 2016-02-05 17:35:23 · 10632 阅读 · 1 评论 -
回文树学习小结
最近突然捡起了好久不搞的字符串,研究了一下一直觉得很神奇的回文树。 做了十来道题,现在做个小结,至于回文树是什么,随便百度就可以找到精彩的解说,偶就不在这里献丑了。 相比于manacher,回文树要显得强大的多,同样是接近o(n)的复杂度, 回文树只需要多一点的空间,就可以实现许多用manacher实现起来非常复杂的功能。 并且就代码量而言,回文树也足够的简短,作为处理回文串的工具,实在是原创 2016-04-18 20:37:22 · 579 阅读 · 0 评论 -
树分治小结
一个月,总算完结了树分治的内容(专题里还有一题还不会搞,不知道能不能分治) 其实树分治也没有想象中那么难,如果对于链上的分治能熟练掌握的话,那么树分治的上手会比较容易。 树分治分为静态和动态两种,静态即直接分治,在分治过程中统计答案。 而动态的需要先按照重心重新建树,然后在每个点上记录答案,这样修改东西的时候就可以更新了, 这一点其实可以看出,动态树分治和线段树其实非常相像。 单单是树分原创 2016-06-07 16:59:52 · 1310 阅读 · 0 评论 -
树链剖分小结
点击打开链接 之前搞定的树链剖分专题,之前的状态持续萎靡,虽然现在仍旧是。不过总结什么的总得写一点的。 之前还有挺多东西,都想补补,不过现在实在是懒癌晚期,完全不想干,等寒假的时候再看看吧。 树链剖分,简单的说,其实就是把一棵树拆成很多条链,然后铺到一个区间里,这样就可以把树上的问题 转换成简单的区间问题,而区间问题我们可以用线段树和树状数组等等数据结构来维护。 其实,dfs序列原创 2016-12-01 17:13:22 · 306 阅读 · 0 评论