【后缀自动机】SPOJ Lexicographical Substring Search
通道:http://www.spoj.com/problems/SUBLEX/
题意:求长度为90000的字符串的字典序K小的子串
思路:SAM后,拓扑一下path[i]表示到达i节点继续往下走能产生的子串,如果走到某个节点的path[i]+1>=k,这说明就在这条路径上,否则就是以其他字母k(k>i)的路径中。这里有个小优化,因为并不是每个节点都是饱满的,所以我们可以压缩一下之后再走,意义在于省时。
代码:https://github.com/Mithril0rd/Rojo/blob/master/SPOJSUBLEX.cpp
TAG:K小子串