Link
解题思路
KMP的next数组可以直接求到A的长度,然后A+B+A是否存在就很好求啦
暴力枚举出S的所有子串,然后跑KMP求出next[]
如果当前的A太长了,就往前跳next[](不断调小A),直到出现可能合法的A
(和【例题3】周期长度和中找最短前缀——后缀类似)
Code
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
char n[16000], s[16000];
int m, ans, len, k, t, next[16000];
int main() {
scanf("%s", n + 1