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

只是模板,但是有趣的是一个strcmp的字符串比较函数,学习到了...

↑百度的概念
像 poj1961 但是更简单..主要是告诫我要学习一下str相关的函数,似乎说要学str函数好久了也没有经常用过
代码
 #include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
const int maxn=;
const double eps=1e-;
const long long modn=;
char a[maxn]={};
int nex[maxn]={};
int n;
int doit(){
int j=-,i=;
nex[]=-;
while(i<n){
if(j==-||a[i]==a[j]){
nex[++i]=++j;
}else{
j=nex[j];
}
}
if(n%(n-nex[n])==){
return n/(n-nex[n]);
}
return ;
}
int main(){
while(~scanf("%s",a)){
memset(nex,,sizeof(nex));
if(strcmp(a,".")==){ break; }
n=strlen(a);
printf("%d\n",doit());
}
return ;
}
05-11 20:44