算法笔记
文章平均质量分 93
DOFYPXY
这个作者很懒,什么都没留下…
展开
-
后缀自动机小记
感觉高一学的SAM太假了,重学一遍。。。 后缀自动机(SAM)的由来 我们需要一种可以识别串S的所有字串的自动机,我们显然可以把S的所有后缀建成Trie树,那么树上每一个点都代表S的一个子串。但这样状态数是n2" role="presentation" style="position: relative;">n2n2n^2级别的,考虑到Trie树上有很多重复部分,所以有了SAM这个东西。原创 2017-12-26 19:20:02 · 466 阅读 · 0 评论 -
Treap模板
#include<iostream> #include<cstring> #include<cstdio> using namespace std; int rd() { static int seed=23333; return (seed=(66666ll*seed+66666ll)&2147483647); } int n; str...原创 2018-03-07 11:04:27 · 250 阅读 · 0 评论 -
替罪羊树模板
替罪羊树要记一下几个东西: t:当前节点权值 cvr:子树当前大小(包括删除的点) sz:子树中元素个数(不包括删除的点) ex:当前元素是否存在 插入操作: 1. 插入一个数会导致一些其某些祖先满足要重构的条件,此时要取最浅的祖先直接重构。 2. insert要返回一个 tree ** 类型的东西,表示要重构的那个指针的地址。 3. 重构的时候(在travel)中要把已删除的点空间释...原创 2018-03-14 20:41:42 · 518 阅读 · 0 评论 -
扩展KMP
扩展KMP 为了叙述方便,设S(i)S(i)S_{(i)}为串SSS从iii开始的后缀 扩展KMP可以在线性时间内求出对于一个文本串SSS的每一个后缀S(i)S(i)S_{(i)}与模板串TTT的最长公共前缀(LCP),我们设其为exiexiex_i。 假设我们已经知道了T(i)T(i)T_{(i)}与TTT的LCP,设为nextinextinext_i,考虑怎么求exiexiex_i。...原创 2018-04-25 11:11:53 · 371 阅读 · 0 评论 -
多项式求逆&多项式开方
多项式求逆 运用基于倍增的多项式求逆可以在O(nlogn)O(nlogn)O(n\log n)时间内,对于一个nnn次多项式A(x)A(x)A(x)求出B(x)B(x)B(x)使得B(x)⋅A(x)=1B(x)⋅A(x)=1B(x)\cdot A(x)=1。 假设当前我们已经求出了在modxnmodxn\mod x^n意义下A(x)A(x)A(x)的逆B′(x)B′(x)B'(x),考虑...原创 2018-05-03 09:42:29 · 1020 阅读 · 1 评论 -
min_25筛学习小记
终于在考试中碰到了一题不能用杜教筛的函数,被迫来学这个。。。 概述 首先这个函数f(x)f(x)f(x)要求是积性函数,而且f(p)f(p)f(p)和f(pc)f(pc)f(p^c)都要很好计算,设一个“假的”f′(x)f′(x)f'(x)表示把xxx直接当成质数时的f(x)f(x)f(x),f′(x)f′(x)f'(x)是(或者能拆成)完全积性函数(比如说简单多项式),且∑ni=1f′(...原创 2018-07-04 22:02:41 · 701 阅读 · 1 评论