学习笔记:KMP 自动机
Solution
这个叫 KMP 自动机。
考虑对于一个字符串
考虑设
也就是
首先求出
接下来求
然后你就求完了。可以发现这个算法以
参考代码:
REP(i, 1, n) {
fl[i] = nx[fl[i - 1]][s[i] - 'a'];
REP(j, 0, 25) nx[i - 1][j] = nx[fl[i - 1]][j];
nx[i - 1][s[i] - 'a'] = i;
}
例题:CF1721E。
这个叫 KMP 自动机。
考虑对于一个字符串
考虑设
也就是
首先求出
接下来求
然后你就求完了。可以发现这个算法以
参考代码:
REP(i, 1, n) {
fl[i] = nx[fl[i - 1]][s[i] - 'a'];
REP(j, 0, 25) nx[i - 1][j] = nx[fl[i - 1]][j];
nx[i - 1][s[i] - 'a'] = i;
}
例题:CF1721E。