随笔分类 - 算法学习
摘要:回文自动机,据说是解决回文问题的利器。感觉板子还是非常简洁的,容易记忆。
阅读全文
摘要:普通的最小生成树,是用于求使给定点集连通的最小代价。而斯坦纳树的不同点就在于,除了必选点之外,它还可以选择一些不必连通的辅助点,起到减小代价的作用。
阅读全文
摘要:带花树,用于求一般图最大匹配。与二分图不一样,一般图中最大的问题就是可能存在奇环。而带花树和匈牙利算法(强烈建议在学习此算法之前先去学学匈牙利)之间主要不同其实也就两点:1. 匈牙利算法实现是$dfs$,带花树的实现是$bfs$。2. 带花树在匈牙利算法的基础上增加了对奇环的处理。
阅读全文
摘要:$2-SAT$的解法不止一种(例如暴搜),但最高效的应该还是Tarjan吧。
阅读全文
摘要:高维前缀和听起来是个很高级的东西,其实也挺简单的。应该说,它就是利用了状压的思想吧。
阅读全文
摘要:矩阵树定理,最基础的作用是用于求一张无向图中的生成树个数。当然它还能扩展到有向图,以及有其他许多应用。
阅读全文
摘要:树上启发式合并,即$DSU\ on\ Tree$,是一个挺好用、挺实用的树上信息维护方法。
阅读全文
摘要:$FHQ\ Treap$,一方面听说它可以可持久化,另一方面听说它是真的好写。它与$Treap$的共同点也只有都借助了随机键值来维护平衡。具体实现起来,两者真是大为不同。
阅读全文
摘要:矩乘是一个$n*m$的矩阵乘上一个$m*k$的矩阵,得到一个$n*k$的矩阵。
阅读全文
摘要:考虑到线段树的一个基本性质,即对于下标范围相同的两棵线段树,它们的形态是完全一样的。则,我们分别从根节点开始遍历两棵线段树,对于当前位置分情况讨论,就可以进行合并了。
阅读全文
摘要:长链剖分在处理与树上深度有关的问题时非常有用,而且还可以用于优化树形$DP$。
阅读全文
摘要:$DLX$,全称$Dancing\ Links\ X$,即舞蹈链算法。这是一个十分高效且实用的算法,它主要用于求出精确覆盖问题的一组解。
阅读全文
摘要:$prufer$序列应该是一个比较实用的东西。据$hl666$大佬说,一切与度数有关的树上计数问题,都可以用它以及它的性质来解决。而听说$ZJOI$最近特别喜欢出计数题,所以有必要学一学。
阅读全文
摘要:$ODT$,即珂朵莉树,又称老司机树($Old\ Driver\ Tree$)。它是一个十分暴力的数据结构,可以用于各种乱搞,也非常的实用。当然,这全要基于一个基本条件:数据随机。
阅读全文
摘要:动态点分治的大致思路便是利用点分树的性质在点分树上维护信息。
阅读全文
摘要:后缀自动机是个神奇的数据结构,它存储着一个字符串所有后缀。
阅读全文
摘要:$LCT$,真的是一个无比神奇的数据结构。它可以动态维护链信息、连通性、边权、子树信息等各种神奇的东西。而且,它其实并不难理解。
阅读全文
摘要:这篇博客的内容,主要建立于后缀排序的基础之上,进一步研究一个$Height$数组以及如何求$LCP$。
阅读全文
摘要:树上莫队的核心思想,就是将一棵树转化成一个序列,然后用普通莫队来搞。
阅读全文
摘要:后缀数组这个东西早就有所耳闻,但由于很难,学了好几遍都没学会。最近花了挺长一段时间去研究了一下,总算是勉强学会了用倍增法来实现后缀排序(据说还有一种更快的$DC3$法,但是要难得多)。
阅读全文