Day62:HDU1403-Longest Common Substring-后缀自动机SAM-最长公共子串

我的学习博客:

我觉得最好的就是它:https://www.luogu.com.cn/blog/Kesdiael3/hou-zhui-zi-dong-ji-yang-xie

http://hihocoder.com/problemset/problem/1441

以上两篇结合看

 

此外参考:

https://oi-wiki.org/string/sam/

kuangbin的:https://www.cnblogs.com/kuangbin/p/3309059.html

陈立杰讲稿:https://wenku.baidu.com/view/a97d51020129bd64783e0912a216147916117e1e.html

cf的,自己翻译吧https://codeforces.com/blog/entry/20861

比较多的题目和题解:https://www.cnblogs.com/zinthos/p/3899679.html

http://hihocoder.com/problemset 搜后缀自动机即可

洛谷的:http://hihocoder.com/problemset

知乎的://zhuanlan.zhihu.com/p/25948077

 


 

 |

 |

 |

自己看吧

 


 

补充题目:

spoj 1811/hdu1403 Longest Common Substring      -->  求两个串的最长公共子串

spoj 1812 Longest Common Substring II      -->  求多个串的最长公共子串

 

后缀自动机英文:Suffix Automaton,简称SAM

时间复杂度:都是线性的

能够识别字符串所有后缀的自动机,也可以识别所有的子串

一般来说,能用后缀自动机解决的问题都可以用后缀数组解决。

 

题意:两个字符串的最长公共子串

 

区别一下:

子串:必须要连续

子序列:顺序固定

 

可以解决的问题:

计算某个字符串在原串中出现的次数;

两个字符串的最长公共子串;

 

计算某个字符串在原串中出现的次数:

Day62:HDU1403-Longest Common Substring-后缀自动机SAM-最长公共子串

 

上一篇:MySQL优化技巧之五(mysql查询性能优化)


下一篇:CF1037H Security 线段树合并 SAM