for (int i = 2, j = 0; i <= m; i++) {
void kmp() {
next[0] = next[1] = 0;
for (int i = 2, j = 0; i <= n; i++) {
while (j > 0 && a[i] != a[j+1]) j = next[j];
if (a[i] == a[j+1]) j++;
next[i] = j;
}
}
void kmp1() {
f[1] = f[0] = 0;
for (int i = 1, j = 0; i <= m; i++) {
while (j>0 && (j == n || b[i] != a[j+1])) j = next[j];
if (a[j+1] == b[i]) j++;
f[i] = j;
if (j == n) s++;
}
}
KMP板子
最新推荐文章于 2024-02-07 17:54:35 发布