首页 > 其他 > 详细

poj 2406Power Strings

时间:2014-01-18 01:30:28      阅读:426      评论:0      收藏:0      [点我收藏+]

http://poj.org/problem?id=2406

bubuko.com,布布扣
 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 #define maxn 1000010
 5 using namespace std;
 6 char s[maxn];
 7 int next[maxn];
 8 void get(char *s,int *next)
 9 {
10     int j,k;
11     next[0]=-1;
12     j=0;
13     k=-1;
14     int kk=strlen(s);
15     while(j<kk)
16     {
17         if(k==-1||s[j]==s[k])
18         {
19             j++;
20             k++;
21             next[j]=k;
22         }
23         else
24             k=next[k];
25     }
26 }
27 int main()
28 {
29     while(scanf("%s",s)!=EOF)
30     {
31         if(!strcmp(s,".")) break;
32         get(s,next);
33         int k=strlen(s);
34         if(k%(k-next[k])==0)
35             printf("%d\n",k/(k-next[k]));
36         else
37             printf("1\n");
38     }
39     return 0;
40 }
View Code

poj 2406Power Strings

原文:http://www.cnblogs.com/fanminghui/p/3524492.html

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