#include<cstdio>
#include<iostream>
using namespace std;
const int N=1000005;
int n;
long long ans;
char s[N];
int nxt[N];
int main(){
scanf("%d",&n);
scanf("%s",s+1);
int j=0;
for(int i=2;i<=n;i++){
while(j&&s[i]!=s[j+1]) j=nxt[j];
if(s[i]==s[j+1]) j++;
nxt[i]=j;
}
for(int i=1;i<=n;i++){
j=i;
while(nxt[j]) j=nxt[j];
if(nxt[i]!=0) nxt[i]=j;
ans+=i-j;
}
printf("%lld",ans);
return 0;
}
P3435 [POI2006]OKR-Periods of Words(kmp)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
【未完】关于ConditionalOnClass注解
帥氣的濤啊
2024-05-14 14:37:18
Mellanox网卡开启SR-IOV
CQzhangyu
2024-05-14 14:33:58
linux安装cuda和cudnn
aozengling
2024-05-14 14:33:48
连接SQL Server报错
雪飛鴻
2024-05-14 14:29:37
uni-app实现上拉加载
賴忠標
2024-05-14 14:29:07
全面系统的AI学习路径,帮助普通人也能玩转AI
追逐時光
2024-05-14 14:27:17
vue3编译优化之“静态提升”
你假裝沒察覺
2024-05-14 14:26:37
又是一个月-20240513
eonie
2024-05-14 14:25:27
flask 如何保证返回json有序
張博的博客
2024-05-14 14:25:07
cmakelist的一个例子
xcywt
2024-05-14 14:18:46
apisix~lua插件开发与插件注册
張佔嶺
2024-05-14 14:17:56
apisix~自定义插件的部署
張佔嶺
2024-05-14 14:17:56