随笔分类 - 后缀自动机
摘要:题目链接:http://www.spoj.com/problems/NSUBSTR/ 这道题在clj的ppt里面有讲到。 对于每一个状态s,可以只考虑它表示的串里的的最长串,这样它的出现次数就是$|right(s)|$。最后用每一个f[len]去更新f[len-1]的答案就好了。 我们来看一看这样做
阅读全文
摘要:题目链接:http://www.spoj.com/problems/LCS2/ 其实两个串的LCS会了,多个串的LCS也就差不多了。 我们先用一个串建立后缀自动机,然后其它的串在上面跑。跑的时候算出每一个位置能往左扩展的最大长度也就是LCS。 于是对于每一个状态维护mx数组,表示当前串与SAM在此状
阅读全文
摘要:题目链接:http://www.spoj.com/problems/LCS/ 题意如题目,求两个串的最大公共子串LCS。 首先对其中一个字符串A建立SAM,然后用另一个字符串B在上面跑。 用一个变量Lcs来记录当前答案,如果能转移到下一个状态则Lcs++。 若不能转移说明需要重新选择状态,则不断地跳
阅读全文
摘要:题目链接:http://poj.org/problem?id=1509 题目意思就是求循环字符串的最小表示。 我们用字符串S+S建立SAM,然后从root开始走n步,每次尽量选最小的。 由于 SAM 可以接受 SS 所有的子串,而字典序最小的字符串也必定是 SS 的子串,因此按照上面的规则移动就可以
阅读全文
摘要:高能预警!!!这只是一篇蒟蒻的学习笔记!!! 陈立杰的ppt:https://wenku.baidu.com/view/90f22eec551810a6f4248606.html 更多:http://blog.csdn.net/wmdcstdio/article/details/44780707 h
阅读全文

浙公网安备 33010602011771号