Contents

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;
}

每天一句叨叨

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

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