摘要:
首先在学习这个之前我们需要学会trie树这个东西,详见trie树。 AC自动机就是在trie树的基础上建立起来的。 先看几个定义: 1,fail指针:这个指针指向 等于当前串的某一后缀的串中,深度最大的那个串。因为在trie树上任意一个点都可以代表从root到这个点所构成的串,所以假设我们现在有ab 阅读全文
摘要:
简而言之,trie树就是把字符当做点的树。 一般而言,我们建trie树都是在树上插入很多个字符串,再利用trie树的性质来做题。 对于任意一个字符串,我们的插入规则如下:(此处默认所有字符串都只有小写字母) 一开始我们在根节点0. 假设当前所在的点为x,当前遍历到的字符为c。 1,我们先检测x这个节 阅读全文
摘要:
基数排序是一种复杂度为n * max(每个数的位数)的优秀算法,平常用的不多,但求后缀数组的时候为了达到nlogn的复杂度一般都会采用基数排序,因此还是很有必要学一下的。 大概的意思就是说,对于一个数列而言,我们先以个位数为权值桶排一遍得到一个新的排列,然后再在这个排列的基础上以十位数为权值桶排一遍 阅读全文