模板
void ins(int ch){
int p=last,np=++cnt;mx[np]=mx[p]+1;last=np;size[np]=1;
while(p && !son[p][ch]) son[p][ch]=np,p=fa[p];
if(!p) fa[np]=root;
else{
int q=son[p][ch];
if(mx[q]==mx[p]+1) fa[np]=q;
else{
int nq=++cnt;mx[nq]=mx[p]+1;
memcpy(son[nq],son[q],sizeof(son[nq]));
fa[nq]=fa[q];fa[q]=fa[np]=nq;
while(son[p][ch]==q) son[p][ch]=nq,p=fa[p];
}
}
}
最长公共子串问题
2 SPOJ#1812 LCS2"Longest Common Substrings II"
最小表示法
bzoj2882/洛谷p1368
第k小字符串问题
后缀自动机+dp
题解:https://blog.csdn.net/qq_39898877/article/details/82756334
题解:https://blog.csdn.net/qq_39898877/article/details/82756305
bzoj 4516
题解:https://blog.csdn.net/qq_39898877/article/details/82756805
bzoj4566: [Haoi2016]找相同字符
题解:https://blog.csdn.net/qq_39898877/article/details/82758652
后缀自动机+维护
练习
SPOJ#7258 SUBLEX"Lexicographical Substring Search"
ACM-ICPC 2018焦作赛区网络预赛 h
题目链接:https://nanti.jisuanke.com/t/31717
题解:https://blog.csdn.net/qq_39898877/article/details/82759527
codevs3160: 最长公共子串
bzoj1396 && 2865: 识别子串
bzoj2946: [Poi2000]公共串(No)
bzoj 2754
bzoj2780: [Spoj]8093 Sevenk Love Oimaster(广义后缀自动机)
bzoj2806: [Ctsc2012]Cheat
题解:https://blog.csdn.net/qq_39898877/article/details/82792001
bzoj2894: 世界线(No)
bzoj3756: Pty的字符串
bzoj3879: SvT
bzoj3926: [Zjoi2015]诸神眷顾的幻想乡
题解:https://blog.csdn.net/qq_39898877/article/details/82778035