zoukankan      html  css  js  c++  java
  • [POI2006]OKR-Periods of Words

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<cstring>
     5 #include<cmath>
     6 #include<queue>
     7 #include<set>
     8 #include<map>
     9 #include<stack>
    10 #include<vector>
    11 using namespace std;
    12 typedef long long ll;
    13 const int maxn=1e6+7;
    14 int n;
    15 int nxt[maxn];
    16 ll ans;
    17 char s[maxn];
    18 int main(){
    19   cin>>n;scanf("%s",s);
    20   int j=0;
    21   for(int i=1;i<n;i++){
    22     while(s[i]!=s[j]&&j>0) j=nxt[j];
    23     if(s[i]==s[j]) j++;
    24     nxt[i+1]=j;
    25   }
    26   for(int i=1;i<=n;i++){
    27       j=i;
    28     while(nxt[j]>0) j=nxt[j];
    29     if(nxt[i]!=0) nxt[i]=j;
    30     ans+=i-j;
    31   }
    32   cout<<ans<<endl;
    33   return 0;
    34 } 
  • 相关阅读:
    MongoDB 与 MySQL 性能比较
    PySpider简易教程
    使用redis有什么缺点
    禅道
    Shell02
    Shell01
    性能测试06
    性能测试05
    性能测试04
    性能测试03
  • 原文地址:https://www.cnblogs.com/lcan/p/9927108.html
Copyright © 2011-2022 走看看