T235569 OKR-Periods of Words

#include<bits/stdc++.h>using namespace std;int k;char st[1000000+100];int f[1000000+100];int main(){

scanf("%d",&k);

scanf("%s",st);

f[0]=-1;

long long ans=0;

for(int i=1;i<k;i++)

{

int j=f[i-1];f[i]=-1;

while(j>=0&&st[j+1]!=st[i])j=f[j];

if(st[j+1]==st[i])f[i]=j+1;

else 

{

f[i]=-1;

continue;

}

}

 

for(int i=1;i<k;i++)

{

if(f[i]==-1)continue;

int j=i;

while(f[j]!=-1)j=f[j];

f[i]=j;

 

ans+=i-j;

 

}

printf("%lld\n",ans);

return 0;

}

posted @   xh小小孩  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示