题目链接:https://ac.nowcoder.com/acm/problem/13253
解题思路:
模拟出每一个进制形成的字符串然后KMP就可以了!
好像用string直接find也行
#include<iostream>
#include<cstdio>
#include<queue>
#include<cstring>
#include<unordered_map>
#include<algorithm>
using namespace std;
const int maxn = 1000005;
char t[maxn];
char s[maxn];
vector<int>v;
int k;
/*
next[]的含义: x[i-next[i]...i-1] = x[0...next[i]-1]
即,从i-next[i]到i-1这一段距离的字符串与从0到next[i]-1这一段字符串相等
next[i]就是以i为后缀的所有字符串与整个字符串的最长公共前缀长度
next[i]满足x[i-z...i-1] = x[0...z-1]的z的最大值
0 1 2 3 4 5 6 7 8
a b c d a b c a b
-1 0 0