Southeastern Europe 2004 - html/css语言栏目:html.css - 自

Period KMP 啊 错位部分是一个循环节啊  
#include<iostream>  
#include<string>  
#include<stdio.h>  
using namespace std;  
string s;  
int n;  
int next[1000010];  
  
  
void getnext()  
{  
    int min =1;  
    int x;  
    int k=-1,j=0;  
    next[0]=-1;  
    while(j<n)  
    {  
        if(k==-1||s[j]==s[k])  
        {  
            j++;  
            k++;  
            next[j]=k;  
            if(j%(j-k)==0&&j/(j-k)>1)  
            printf("%d %d\n",j,j/(j-k));  
        }  
        else  
            k=next[k];    
    }  
}  
int main()  
{  
    int cnt =1;  
    while(cin>>n,n)  
    {  
        cin>>s;  
        printf("Test case #%d\n",cnt++);  
        getnext();  
        puts("");  
    }  
    return 0;  
}  

 

   
返回顶部
跳到底部

Copyright 2011-2024 南京追名网络科技有限公司 苏ICP备2023031119号-6 乌徒帮 All Rights Reserved Powered by Z-BlogPHP Theme By open开发

请先 登录 再评论,若不是会员请先 注册