↓ Skip to main content
  1. Posts/

ac自动机学习笔记

·368 words·1 min
Note: This article is available in Chinese only. 本文暂无英文版本。 View original

老规矩,先放资料: 参考资料1 参考资料2 参考资料3

(其实这些资料我都没怎么看。。。。因为感觉。。。理解起来非常容易的样子orz)

我的理解:感觉这东西如果明白了kmp和trie,理解起来就完全没难度。。。

感觉就是在trie上做kmp…?

nxt数组换个名字叫fail。。。。其实是一样的东西吧。。。?

来来来,先干一波题再回来总结。。。


感觉暴力匹配相对于kmp(都是线性单模式串),就好像trie相对于ac自动机(都是树上多模式串)

另一个方向:暴力相对于trie,(都是暴力)就好像kmp相对于ac自动机(都是经过失配优化)

ac自动机的题目里这么多和dp结合在一起让我怎么做啊orz…

以及感觉。。。ac自动机的水平可以通过多写trie来提高2333。

区域赛之前再刷一波trie…

是时候干掉线段树了。。。

Related

poj 2001 Shortest Prefixes (trie树)

·575 words·2 mins
poj 2001 题目链接 题意:给出n个字符串的表,问每个字符串的简化表示。简化表示的要求是,以该字符串的最短的而且不能产生歧义的前缀来表示。 思路:字典树,多一个cnt属性,每次insert的时候,路过的每个节点的cnt++

poj 3630 Phone List (带删除操作的静态trie树模板题)

·555 words·2 mins
poj 3630 题目链接 题意:给出n个字符串,问是否满足所有的字符串都不以其他的字符串为前缀。 思路:字典树,先建树,然后每次查找的之前先删掉自己,找完以后再加回来。 以及这题动态建艹不过。。。学习了一下静态建树的写法。。。第一次写静态的写法。。。可以当做模板用。。。

hdu 1247 Hat’s Words (trie树)

·599 words·2 mins
hdu 1247 题目链接 题意:给出n个字符串的单词表,输出所有的字符串a,满足字符串a是由n中另外两个字符串拼接成的。 思路:字典树。。其实我一开始想出了正解。。。。就是分割一个单词然后分别在trie上查找。。。但是由于题目坑爹得没给单词的长度这个数据范围。。并不是很敢写2333。。。看了下题解发现就是这么做。。。然后写了下1A。。。

hdu 5536 || 2015 长春区域赛 J Chip Factory (带删除操作的trie树)

·905 words·2 mins
hdu 5536 题目链接 题意:给出 n 个数,然后问最大的 (a[i]+a[j])^a[k](i,j,k 互不相同)。 思路:异或和最大很容易想到字典树,但是如何保证 i,j,k 互不相同这里没有想明白。我的想法是加一个标记代表之前的 id,但是我加的标记只有在叶子节点上才有,也就是会出现走到了最后一步才发现这个节点不能走的情况。

hdu 4828 Xor Sum (trie 树模板题,经典应用)

·730 words·2 mins
hdu 4825 题目链接 题意:给定n个数,然后给出m个询问,每组询问一个数x,问n中的数y使得x和y的异或和最大。 思路:字典树。。把每个数转化成二进制,注意补全前导0,使得所有数都有相同的位数。