首页 > 其他 > 详细

POJ1961--Period

时间:2019-07-04 23:44:23      阅读:105      评论:0      收藏:0      [点我收藏+]

题目在这儿。

 

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<queue>
using namespace std;
char c[1000001];
int n,cnt,nex[1000001];
int main(){
    while(scanf("%d",&n)&&n){
        scanf("%s",c+1);
        nex[1]=0;
         for(int i=2,j=0;i<=n;i++) {
            while(j>0&&c[i]!=c[j+1]){j=nex[j];}
            if(c[i]==c[j+1]){j++;}
            nex[i]=j;
         }
         printf("Test case #%d\n",++cnt);
         for(int i=2;i<=n;i++){
            if(!(i%(i-nex[i]))&&(i/(i-nex[i]))>=2){ 
                printf("%d %d\n",i,i/(i-nex[i]));
            } 
        }
        cout<<endl;
    }
    return 0;
}

 

 

切记,一定要注意换行问题。

我就是在这上面错了好几次。

POJ1961--Period

原文:https://www.cnblogs.com/xiongchongwen/p/11135469.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!