141. 周期 - AcWing题库(kmp)
#include
#include
#include
#include
using namespace std;
const int N = 1000010, M = 100010;
typedef long long LL;
typedef pair PII;
char s[N];
int ne[N];
int n, m;
int main() {
cin >> n;
int idx = 1;
while (n) {
cin >> s + 1;
for (int i = 2, j = 0; i <= n; i++) {
while (j && s[i] != s[j + 1]) j = ne[j];
if (s[i] == s[j + 1]) j++;
ne[i] = j;
}
printf("Test case #%d\n", idx++);
for (int i = 2; i <= n; i++) {
if (i % (i - ne[i]) == 0 && ne[i])
cout << i << ' ' << i / (i - ne[i]) << endl;
}
cout << endl;
cin >> n;
}
return 0;
}
记录详情 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)(kmp模板)
#include
#include
using namespace std;
int nex[1000006];
int f[1000006];
void cal_next(string s){
for(int i=1,j=0;i>s1>>s2;
cal_next(s2);
kmp(s1,s2);
for(int i=0;i
137. 雪花雪花雪花 - AcWing题库(最小表示法+hash)
#include
#include
#include
#include
AcWing 4672. 布料排序 - AcWing(简单排序)
#include
#include
#include
#include
142. 前缀统计 - AcWing题库(字典树)
#include
#include
#include
#include