随笔分类 - 模板
摘要:自从学会用指针写数据结构后就一发不可收拾了orz.这是一个弱智的AC自动机模板, AC自动机构建就是先构造一颗trie树,之后一层一层的,如果有儿子就将他儿子的fail数组指向他的fail的那个儿子,如果没有,他的那个儿子就是他fail的儿子(对于根节点没有就指向根节点) struct node {
阅读全文
摘要:浙江daolao云集,害怕2333 这个写起来其实很方便的,核心操作就两个 merge和split(合并和分离) 为什么要学非旋转treap呢?相比于旋转treap,非旋转treap(据说)可以区间操作、可持久化。(结构一定程度上比较稳定) 如果会玄学压行就可以更短啦! merge操作 我们将两棵t
阅读全文
摘要:其实感觉treap和splay一样都是玄学?orz 不过这个选随机数种子挺好van的 LOJ104普通平衡树 题就不放了,基本上操作和splay一样,只是这个是tree + heap 就是随机一个值,让值小的(大的) 放在最高头(堆顶)来进行旋转,只会在删除和添加的地方旋转,利用随机树保证其平衡,而
阅读全文
摘要:跟我一起念zigzag,zigzag,zigzag,zigzag,zigzag,zigzag,zigzag,zigzag,zagzig,zagzig,zagzig,zagzig,zagzig,zagzag,zigzig,zagzag,zagzag,zigzig,zigzig,zigzig,zigzi
阅读全文
摘要:与Manacher+后缀自动机倍增匹配相比快太多。 manacher+SAM写法 以上是回文自动机的速度 以上是Manacher+SAM的速度。 感受一下。。(受个人LJ代码的常数影响) 回文自动机是一个类字典树,构造方式又类似于AC自动机。其每个结点就代表了一个回文串(这与后缀自动机一个结点代表多
阅读全文
摘要:事实证明树状数组求逆序对的限制很大,还是必须老老实实手写排序来搞sto sto orz orz int merge_sort1(int *s1,int *s2,int l,int mid,int r) { int i=l,j=mid+1,k=l; int sum=0; while(i<=mid&&j
阅读全文
摘要:一些很基础的的字符串算法模板(不予解释) 烤馍片(KMP) void kmp()//烤馍片 { fail[1]=j=0; for(int i=2;i<=m;i++) { while(j>0&&b[i]!=b[j+1]) j=fail[j]; if(b[i]==b[j+1]) j++; fail[i]
阅读全文