后缀自动机
asdfgh0308
这个作者很懒,什么都没留下…
展开
-
poj1509 Glass Beads,后缀自动机
后缀自动机是愈发流行的字符串工具。两年前我就学习了这个玩意,但是,现在拿起来还是那么陌生。似乎poj1509 Glass Beads每次找最小的字母边转移,转移l次,找到的就是最小串表示的结尾点。为什么每次找最小的子字母边转移,不会使得在没找到l次后就到达结束状态(没法再转移下去了)呢?因为,后缀自动机可以串接受所有后缀。如果一个后缀长度小于l,由于开始倍增过,这个原创 2014-08-15 20:35:01 · 673 阅读 · 0 评论 -
spoj1812 Longest Common Substring II(LCS2),后缀自动机
1811LCS的升级版。用每个串在自动机上跑一遍,原创 2014-08-15 23:52:47 · 815 阅读 · 0 评论 -
spoj 8222 Substrings(NSUBSTR),后缀自动机
spoj 8222 Substringsf[i]指长度为i的串出现次数的最大值。这里的不同出现指,可以有重复串,只要起始位置不同就视为不同的出现。求f[1]..f[lenth]。 怎么求可重复的一个串出现了多少次。LCS那篇里提到了,通过fa指针回退,会回到一个状态,这个状态的接受串与当前状态的接受串后缀是相同的。那么,设t[i].fa=j,那么i状态的接受串也必定出现在原创 2014-08-17 18:25:58 · 1359 阅读 · 0 评论 -
spoj1811 Longest Common Substring(LCS),后缀自动机
spoj1811LCS问两个字符串最长公共子串。做法很简单。匹配成功,则tl++,失败,从父指针回退,tl=t[now].len。从这题可以清楚了解后缀自动机fa指针的性质:指向一个状态,这个状态的接受串s[x..x+i]是与当前状态的接受串后缀s[j-i..j]匹配是最长的一个。这里是不是发现了一个和KMP很像的性质?KMP在失配时通过next数组回退,那么这原创 2014-08-15 20:43:30 · 931 阅读 · 0 评论 -
hdu4641 K-string,后缀自动机,并查集
做完这题还是有点小高兴的。。网上题解都是O(n^2)水的。简单介绍一下我想滴比标程还短还快的O(n+T(并查集))的做法。原创 2014-11-10 02:02:56 · 2100 阅读 · 0 评论