ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

T235569 OKR-Periods of Words

2022-05-04 21:02:07  阅读:41  来源: 互联网

标签:OKR int scanf long 1000000 st Periods Words ans


#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;

}

标签:OKR,int,scanf,long,1000000,st,Periods,Words,ans
来源: https://www.cnblogs.com/xhxiaoxiaohai/p/16222378.html

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有