Power Strings_poj2406_kmp
来源:互联网 发布:server2008 网络驱动 编辑:程序博客网 时间:2024/06/06 01:10
Description
Given two strings a and b we define a*b to be their concatenation. For example, if a = “abc” and b = “def” then a*b = “abcdef”. If we think of concatenation as multiplication, exponentiation by a non-negative integer is defined in the normal way: a^0 = “” (the empty string) and a^(n+1) = a*(a^n).
Input
Each test case is a line of input representing s, a string of printable characters. The length of s will be at least 1 and will not exceed 1 million characters. A line containing a period follows the last test case.
Output
For each s you should print the largest n such that s = a^n for some string a.
Hint
This problem has huge input, use scanf instead of cin to avoid time limit exceed.
题解
根据nex数组的定义可以得知字符串1~j与i-j~i完全匹配,则找到离末尾最近的匹配串的长度,用总长除一下就好了
代码
var s:ansistring; p:array[0..1000000]of longint; i,ans:int64;procedure init(s:ansistring);var i,j:longint;begin p[1]:=0; j:=0; for i:=2 to length(s) do begin while (s[j+1]<>s[i])and(j>0) do j:=p[j]; if (s[j+1]=s[i]) then inc(j); p[i]:=j; end;end;begin while not eof do begin readln(s); if s='.' then exit; init(s); i:=length(s); ans:=i div(i-p[i]); if i mod (i-p[i])<>0 then ans:=1; writeln(ans); end;end.
- Power Strings_poj2406_kmp
- power
- power
- power
- Power
- Power
- power
- Power Table
- Power Designer.
- Power Strings
- Power Management
- Power Management
- power shell
- Power Designer
- Power Statement
- Power Management
- need power
- Power Management
- ReactNative从网络获取数据并显示
- 结构体与类(验证结构体是值类型,类是引用类型)
- hdu 5832 A water problem 2016icpc网络赛
- 进入数据库的世界
- 非修改性序列算法之mismatch
- Power Strings_poj2406_kmp
- Android UI控件 拖动条SeekBar
- 快速输入模板
- Java提取中括号中的内容
- java中Date/Time/Timestamp对应sql
- .NET Framework基本概念
- MySQL数据类型和常用字段属性总结
- Cadence 17.2笔记(1)
- 炎炎夏日冰凉一下:纳西族圣山玉龙雪山之行