把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

随笔分类 -  算法学习

摘要:$ODT$,即珂朵莉树,又称老司机树($Old\ Driver\ Tree$)。它是一个十分暴力的数据结构,可以用于各种乱搞,也非常的实用。当然,这全要基于一个基本条件:数据随机。 阅读全文
posted @ 2019-03-18 10:05 TheLostWeak 阅读(4012) 评论(0) 推荐(4)
摘要:动态点分治的大致思路便是利用点分树的性质在点分树上维护信息。 阅读全文
posted @ 2018-12-28 20:29 TheLostWeak 阅读(234) 评论(0) 推荐(0)
摘要:后缀自动机是个神奇的数据结构,它存储着一个字符串所有后缀。 阅读全文
posted @ 2018-12-20 20:32 TheLostWeak 阅读(297) 评论(0) 推荐(0)
摘要:$LCT$,真的是一个无比神奇的数据结构。它可以动态维护链信息、连通性、边权、子树信息等各种神奇的东西。而且,它其实并不难理解。 阅读全文
posted @ 2018-12-18 20:24 TheLostWeak 阅读(5167) 评论(1) 推荐(7)
摘要:这篇博客的内容,主要建立于后缀排序的基础之上,进一步研究一个$Height$数组以及如何求$LCP$。 阅读全文
posted @ 2018-12-03 20:32 TheLostWeak 阅读(2158) 评论(0) 推荐(3)
摘要:树上莫队的核心思想,就是将一棵树转化成一个序列,然后用普通莫队来搞。 阅读全文
posted @ 2018-11-28 20:21 TheLostWeak 阅读(383) 评论(0) 推荐(0)
摘要:后缀数组这个东西早就有所耳闻,但由于很难,学了好几遍都没学会。最近花了挺长一段时间去研究了一下,总算是勉强学会了用倍增法来实现后缀排序(据说还有一种更快的$DC3$法,但是要难得多)。 阅读全文
posted @ 2018-11-25 20:29 TheLostWeak 阅读(1790) 评论(0) 推荐(2)
摘要:斜率优化$DP$是难倒我很久的一个算法,我花了很长时间都难以理解。后来,经过无数次的研究加以对一些例题的理解,总算啃下了这根硬骨头。 阅读全文
posted @ 2018-11-18 13:32 TheLostWeak 阅读(245) 评论(0) 推荐(0)
摘要:单调队列优化$DP$应该还算是比较简单容易理解的吧,像它的升级版斜率优化$DP$就显得复杂了许多。 阅读全文
posted @ 2018-11-18 11:27 TheLostWeak 阅读(408) 评论(0) 推荐(0)
摘要:线性基真的是一个非常神奇的算法。它可以用于求解一个集合内的最大异或和,而且效率极高,是$O(N\ log\ MaxNum)$的时间复杂度。所以,它还是十分值得一学的。 阅读全文
posted @ 2018-11-02 20:21 TheLostWeak 阅读(315) 评论(0) 推荐(0)
摘要:要维护一段区间内的最值时,我们可以用堆来操作。但是,如果要合并两个堆,复杂度就极高了。所以,我们就要使用左偏树这个神奇的数据结构,来实现堆的合并。 阅读全文
posted @ 2018-11-01 20:13 TheLostWeak 阅读(777) 评论(0) 推荐(0)
摘要:杜教筛真的是一个十分著名的筛法,它那玄学的$O(n^{\frac23})$时间复杂度真的是十分神奇。它主要用途是求积性函数的前缀和(当然,根据差分思想,求一段区间内的值之和也是很简单的)。 阅读全文
posted @ 2018-10-30 15:05 TheLostWeak 阅读(636) 评论(0) 推荐(0)
摘要:现在有两个字符串:$s1$和$s2$,现在要你输出$s2$在$s1$当中每一次出现的位置,你会怎么做? 阅读全文
posted @ 2018-10-29 18:21 TheLostWeak 阅读(600) 评论(0) 推荐(0)
摘要:$Trie$,又称字典树或前缀树,是一种有序树状的数据结构,用于保存关联数组,其中的键值通常是字符串。 阅读全文
posted @ 2018-10-29 18:12 TheLostWeak 阅读(176) 评论(0) 推荐(0)
摘要:将两个数据结构合并时,应将小的数据结构中的元素一个一个分别插入大的数据结构。 阅读全文
posted @ 2018-10-29 18:09 TheLostWeak 阅读(1267) 评论(1) 推荐(0)
摘要:树链剖分,关键就在于剖分二字。我们可以将一棵树按照子树的大小将其节点划分成两部分:重节点和轻节点。树链剖分的主要作用在于,可以更好地存储并更改一棵树的信息。 阅读全文
posted @ 2018-10-29 15:53 TheLostWeak 阅读(555) 评论(0) 推荐(0)
摘要:贪心,是一个很好的算法,只可惜适用的范围不广。随机化,是一个很好的算法,只可惜正确率不高。如果将这两个算法结合起来,我们能不能得到一个适用范围广、正确率较高的算法呢?答案是肯定的。模拟退火($Simulated Annealing$,简称$SA$),一个随机化与贪心结合的算法,就可以轻松解决许多难题(前提是你的$RP$较好或是数据范围较小)。 阅读全文
posted @ 2018-10-29 15:48 TheLostWeak 阅读(1058) 评论(0) 推荐(0)
摘要:在做树上问题时,我们经常会遇到$LCA$(最近公共祖先)问题。曾经的我遇到这类问题只会$O(n)$暴力求解,学了倍增$LCA$,就可以$O(logn)$解决了。 阅读全文
posted @ 2018-10-29 15:46 TheLostWeak 阅读(392) 评论(0) 推荐(0)
摘要:严格次小生成树,顾名思义,就是在联通图上选择一些边构成一棵树,使这棵树边权和严格次小。 阅读全文
posted @ 2018-10-29 14:45 TheLostWeak 阅读(243) 评论(0) 推荐(0)
摘要:可持久化并查集应该是一个挺实用的数据结构(例如$NOI2018Day1T1$中就有它的身影)。它主要建立于可持久化数组的基础之上(而可持久化数组的实现是完全基于主席树的),因为这样就可以去访问一些历史版本从而实现可持久化了。 阅读全文
posted @ 2018-10-29 14:34 TheLostWeak 阅读(200) 评论(0) 推荐(0)