SPOJ
文章平均质量分 80
calabash_boy
退役
展开
-
SPOJ 7258 字典序第K小的子串:后缀自动机
题意:给出一个串,求出所有子串,去重,然后求字典序第K小的串,总共Q组询问。题解:对串创建SAM,然后,拓扑一下,算出每个状态,如果继续往后边走,能够生成多少种不同的字符串。然后每次查询的时候,就按照字典顺序来看,比如到达某个点S,先看'a'儿子能造出多少个字符,如果很少,那么我们下一个字符肯定不走‘a’,那么我们继续看'b',看一下'a'和‘b’共能造出多少个字符,如果多了,那就选‘原创 2017-09-21 20:50:54 · 1585 阅读 · 0 评论 -
SPOJ 1812 多模式LCS
题意: 给出多个串,求所有串的LCS。题解:对第一个串创建SAM,其他串在上边跑,然后吧每个点更新出,模式串和匹配串在这一点向前最长匹配长度,那么所有船匹配完成之后,每个点取min,就得到了所有串在这一点的公共部分有多长,然后所有点取max得到答案。注意:要更新处parent链上所有的点。考虑样例:acbbcacbc自动机为:原创 2017-09-21 15:22:45 · 429 阅读 · 0 评论