
KMP
SSL_ZZL
是很菜啦
展开
-
【ybtoj】【KMP】【例题4】子串拆分
【例题4】子串拆分Link解题思路CodeLink传送门题目解题思路KMP的next数组可以直接求到A的长度,然后A+B+A是否存在就很好求啦暴力枚举出S的所有子串,然后跑KMP求出next[]如果当前的A太长了,就往前跳next[],直到出现可能合法的A(和【例题3】周期长度和)Code#include <iostream>#include <cstring>#include <cstdio>using namespace std;c原创 2021-04-02 21:32:53 · 257 阅读 · 0 评论 -
【ybtoj】【KMP】【例题3】周期长度和
【例题3】周期长度和Link解题思路CodeLink传送门题目解题思路给出一个A黄线为最短的前缀 = 后缀很明显周期应该选前三个Code#include <iostream>#include <cstring>#include <cstdio>using namespace std;long long n, ans, k, next[10010000];char s[1001000];int find(int x) { if原创 2021-04-02 21:28:24 · 221 阅读 · 0 评论 -
【ybtoj】【KMP】【例题2】重复子串
【例题2】重复子串Link解题思路CodeLink传送门题目解题思路自己对自己进行一次KMP,就可以找出最长的一个子串,这个子串是字符串的前缀也是后缀如果字符串长度正好是这个子串的倍数,那么多少倍就是多少个相同子串如果不是倍数,那么就只有一个相同子串(本身)Code#include <iostream>#include <cstring>#include <cstdio>using namespace std;int n, k, nex原创 2021-04-01 16:08:57 · 183 阅读 · 0 评论 -
【ybtoj】【KMP】【例题1】子串查找
【例题1】子串查找Link解题思路CodeLink传送门题目解题思路kmp模板题kmpCode#include <iostream>#include <cstring>#include <cstdio>using namespace std;char a[1000100], b[1000100];int p[1000100], ans, lena, lenb;int main() { scanf("%s%s", a + 1, b原创 2021-03-18 15:49:21 · 325 阅读 · 0 评论