FOJ 1011 Problem 1011 Power Strings

2011-04-04  23:53:35

题目地址:http://acm.fzu.edu.cn/problem.php?pid=1011

真的很不容易,KPM  next   nextval   +_+

KMP算法(next):http://blog.sina.com.cn/s/blog_5f240fc40100cjgr.html

利用nextval求解的代码(搞不懂):http://gschenxinqing.blog.163.com/blog/static/1231481162009759173586/

2011-04-05  10:19:07

╮(╯▽╰)╭ 还是有错啊 "aaabaaaa" 得到的是 2 !~~~~(>_<)~~~~ 

可这样的代码也AC

2011-04-05 10:46:54

else if(((len-1)%(len-1-next[len-1])==0)&&next[len-1-next[len-1]]==1 ) 添加了红色部分,使得 "aaabaaaa" 得到的是 2的错误得到纠正,可还是无法证明该代码是否完全正确


#include #include #define N 1000001 using namespace std; char str[N+1]; int next[N]; int main() { int i,k,len,result; str[0]='a'; while (~scanf("%s",str+1)) { if(str[1]=='.') break; len=strlen(str); next[0]=-1; next[1]=0; next[2]=1; for(i=3,k=1;inext[0:8]-101233434 result=(len-1)/(len-1-next[len-1]); else result=1; printf("%d/n",result); } return 0; }

 

你可能感兴趣的:(带着疑问AC的)