
spoj
asdfgh0308
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
spoj1812 Longest Common Substring II(LCS2),后缀自动机
1811LCS的升级版。 用每个串在自动机上跑一遍,原创 2014-08-15 23:52:47 · 867 阅读 · 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 · 986 阅读 · 0 评论 -
spoj 8222 Substrings(NSUBSTR),后缀自动机
spoj 8222 Substrings f[i]指长度为i的串出现次数的最大值。这里的不同出现指,可以有重复串,只要起始位置不同就视为不同的出现。 求f[1]..f[lenth]。 怎么求可重复的一个串出现了多少次。 LCS那篇里提到了,通过fa指针回退,会回到一个状态,这个状态的接受串与当前状态的接受串后缀是相同的。 那么,设t[i].fa=j,那么i状态的接受串也必定出现在原创 2014-08-17 18:25:58 · 1425 阅读 · 0 评论 -
spoj7258 Lexicographical Substring Search(SUBLEX),后缀自动机
spoj7258. Lexicographical Substring Search 求一个串的所有不同子串中字典序第k大的。 利用后缀自动机,拓扑排序后通过子边dp,可以计算当前状态可接受的后缀还有多少个串。 然后不断转移即可。 由于卡常数,需要两个优化: 1.预处理将空儿子去掉,减少转移复杂度。 2.优化输出,将要输出的串保存在一个char数组中,最后一起输出。会比一原创 2014-08-17 13:43:46 · 744 阅读 · 0 评论