首页 > 其他 > 详细

poj2406 Power Strings 2012-01-11

时间:2016-03-02 21:35:13      阅读:221      评论:0      收藏:0      [点我收藏+]

http://162.105.81.212/JudgeOnline/problem?id=2406

 

____________________________

求最长重复字串。即将字符串自我匹配,然后字符串长度减去最后一位的next值即为最长重复字串的长度。注意他求的是由多少个最长重复字串组成。

____________________________

 1 Program stone;
 2 var i,j:longint;
 3     s:ansistring;
 4     b:array[1..1000005]of longint;
 5 Begin
 6  assign(input,input.in);reset(input);
 7   readln(s);
 8   while s<>. do
 9    begin
10      j:=0;
11      b[1]:=0;
12      for i:=2 to length(s) do
13       begin
14         while (j>0)and(s[i]<>s[j+1]) do j:=b[j];
15         if s[j+1]=s[i] then inc(j);
16         b[i]:=j;
17       end;
18      i:=length(s);
19      if i mod (i-b[i])=0 then writeln(i div(i-b[i])) else writeln(1);
20      readln(s);
21    end;
22 end.
23 
24  

 

poj2406 Power Strings 2012-01-11

原文:http://www.cnblogs.com/yesphet/p/5236443.html

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