摘要: AC自动机是个很神奇的数据结构。 "这" 是一道模板题。 首先考虑将模式串们构成$trie$树。用$nxt_i^c$表示从$i$走$c$这个字母会走到的儿子,$S_i$表示从根走到$i$中间经过的边上的字母按顺序连接。 然后定义$fail_i$指向与$S_i$的后缀匹配的最深前缀$S_j$。 于是, 阅读全文
posted @ 2019-03-03 21:18 Denverjin 阅读(152) 评论(0) 推荐(0) 编辑
摘要: KMP是个很神奇的算法。 "这" 是一道模板题。 设$S$为模式串,$T$为查询串。 由于正常的字符串匹配实在太慢($O(n^2)$),所以就要考虑这一位匹配不成功时需要移至模式串的哪一位继续匹配。 可以发现,应该移到与当前匹配到的位置的后缀相等的最长前缀。 所以,对于每一个位置$i$,记录$fai 阅读全文
posted @ 2019-03-03 21:16 Denverjin 阅读(152) 评论(0) 推荐(0) 编辑
摘要: treap是个很神奇的数据结构。 给你一个问题,你可以解决它吗? 这个问题需要treap这个数据结构。 众所周知,二叉查找树的查找效率低的原因是不平衡,而我们又不希望用各种奇奇怪怪的旋转来使它平衡,那么该怎么办呢?这时候,FHQ跳出来说了一句:我的treap,不需要旋转! FHQ Treap的基本操 阅读全文
posted @ 2019-03-02 22:29 Denverjin 阅读(252) 评论(0) 推荐(0) 编辑