SAM后缀自动机学习路线_算法日常[19/100]

学习路径推荐

  网上有很多的学习SAM的资料,但是很多资料写得比较全面,导致一开始看可能看不懂(可能只是因为博主自己比较菜),然后博主自己整理了一个学习路线,希望对大家有点帮助

  1. 简介版本的SAM
  2. 比较全面的SAM版本
    • 个人感觉这里的后缀链接初次看有点难懂
    • 还有那个算法的思路也会有点懵逼,懵逼的话建议可以先看紧接在下面的算法正确性证明,不然很容易自闭
    • 建议先看简介版本的SAM的后缀链接的介绍先然后再来看这个比较好_大佬请无视
  3. 经典题集

2019年9月5日14:21:10 补充,建议参考链接增加以及自己学习历程的一些心得

  • 增加的参考链接: 史上最通俗的后缀自动机详解
  • 学习历程: 我比较菜,所以断断续续地看了5天(主要是看不懂然后就总发呆…(雾)),然后第6天重新看了一遍oi-wiki的教程,发现自己看得懂了!(得益于前几天不断地看简介版和通俗易懂版的,让自己重新看的时候感觉许多都会,然后就有了一个比较全面的认识,然后就终于看懂了SAM算法,自闭6天后要不要这么爽)
  • 学习心得:
    • 找一个安静的环境,让自己能够保持专注
    • 抽出一整块的时间来看SAM专题
    • 一次没有看懂没关系,反复看,找各种不同的资料看
    • 手动笔记,写写画画
    • 最终总结出自己的笔记
  • 避坑提醒: oi-wiki给的板子中用的是map映射的next,**建议改成int next[符号集大小]**,因为我做题时map,unordered_map都TLE了…

送一个bug_free的注释

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/**
*        ┏┓  ┏┓+ +
*       ┏┛┻━━━┛┻┓ + +
*       ┃    ┃  
*       ┃    ┃ ++ + + +
*       ████━████┃+
*       ┃    ┃ +
*       ┃ ┻  ┃
*       ┃    ┃ + +
*       ┗━┓  ┏━┛
*        ┃  ┃           
*        ┃  ┃ + + + +
*        ┃  ┃    Code is far away from bug with the animal protecting       
*        ┃  ┃ +     神兽保佑,代码无bug  
*        ┃  ┃
*        ┃  ┃  +         
*        ┃  ┗━━━┓ + +
*        ┃    ┣┓
*        ┃    ┏┛
*        ┗┓┓┏━┳┓┏┛ + + + +
*         ┃┫┫ ┃┫┫
*         ┗┻┛ ┗┻┛+ + + +
*/
#include<bits/stdc++.h>
using namespace std;

int main(){
cout<<"厉Hello World哥!"<<endl;
return 0;
}

每天一句叨叨

生活或许很苦,但我偏要酷

认清生活的残酷然后依旧挣扎着往上爬,致平凡世界里的英雄们!