码迷,mamicode.com
首页 > 其他好文 > 详细

poj2406 Power Strings 2012-01-11

时间:2016-03-02 21:37:34      阅读:175      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!