
字符串—后缀自动机
Ezereal
这个作者很懒,什么都没留下…
展开
-
后缀自动机学习总结
常用的字符串处理工具:1. 整词索引:排序+二分;Hash表。可以解决整词匹配,但不支持前缀搜索;Hash表在模式串定长的情况下可以用RK解决多模式串搜索和匹配问题。总的说来整词索引在子串搜索里面的性能并理想。当然也有优点,就是空间小。2. 前缀索引:KMP/Trie树/AC自动机。AC自动机可以看成KMP + Trie树的混合体,因为KMP支持单串搜索转载 2016-10-10 23:24:45 · 854 阅读 · 1 评论 -
HDU 4622 Reincarnation (查询一段字符串的不同子串个数,后缀自动机)
这题就是查询一个区间内的不同子串的个数。如果单单是求一个字符串的不同子串个数,无论是后缀数组还是后缀自动机都非常容易实现。N我是用后缀自动机预处理出所有区间的不同子串个数。建立n次后缀自动机。后缀自动机要理解其含义,从起点到每个点的不同路径,就是不同的子串。到每一个点,不同路径,其实就是以这个点为最后一个字符的后缀,长度是介于(p->fa->len,p->len]之间的,个转载 2016-10-11 21:30:56 · 824 阅读 · 0 评论 -
SPOJ 1811. Longest Common Substring (LCS,两个字符串的最长公共子串, 后缀自动机SAM)
/* ***********************************************Author :kuangbinCreated Time :2013-9-8 23:27:46File Name :F:\2013ACM练习\专题学习\后缀自动机\new\SPOJ_LCS.cpp************************************转载 2016-10-11 21:32:38 · 600 阅读 · 0 评论 -
HDU 4436 str2int (后缀自动机SAM,多串建立)
使用SAM进行多串建立。 然后拓扑排序,之后累加计数就可以了。注意前导0的要去掉。#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;const in转载 2016-10-11 21:34:12 · 671 阅读 · 0 评论