TopCoder

暴力又被TLE
PY派對

User's AC Ratio

100.0% (3/3)

Submission's AC Ratio

70.0% (7/10)

Tags

Description

在這道題目中,我們用 $A=BC$ 表示字串 $A$ 是字串 $B$ 跟字串 $C$ 按照這個順序連接起來(連空白隔開都沒有)。 進一步的,定義 $P$ 是字串 $A$ 的前綴,表示存在一個字串 $B$ 使得 $A=PB$ ,其中 $P$ 跟 $B$ 都有可能是空字串。 再更進一步,若 $P\ne A$ 且 $P$ 不是空字串,則我們稱呼 $P$ 為 $A$ 的一個「好的前綴」。

一個字串 $Q$ 是字串 $A$ 的週期,當且僅當 $Q$ 是字串 $A$ 的一個「好的前綴」且字串 $A$ 是字串 $QQ$ 的一個前綴(未必要是「好的前綴」)。 舉例來說,字串 $abab$ 和 $ababab$ 都是字串 $abababa$ 的週期。 字串 $A$ 的最長週期就是 $A$ 的所有週期中長度最長的,或者若 $A$ 沒有週期,那就是它的最長週期就是空字串。 舉例來說,字串 $ababab$ 的最長週期是 $abab$,而字串 $abc$ 的最長週期是空字串。

現在給你一個字串,請你對這個字串的所有前綴計算最長週期的長度,並輸出這些長度的總和。

Input Format

輸入共兩行,第一行包含一個正整數 $k$($1\le k \le 10^6$),表示字串的長度。 第二行包含所給予的長度 $k$ 的字串,字串只由英文小寫字母所組成。

Output Format

輸出一行,該行包含一個整數,就是所給字串的所有前綴的最長週期長度的總和。

Sample Input 1

8
babababa

Sample Output 1

24

Hints

Problem Source

NEOJ Problem 404

POI XIII

本題為官方賽後公布的測資,故沒有 subtask。

Subtasks

No. Testdata Range Constraints Score
1 0~19 100

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 65536 65536 1
1 1000 65536 65536 1
2 1000 65536 65536 1
3 1000 65536 65536 1
4 1000 65536 65536 1
5 1000 65536 65536 1
6 1000 65536 65536 1
7 1000 65536 65536 1
8 1000 65536 65536 1
9 1000 65536 65536 1
10 1000 65536 65536 1
11 1000 65536 65536 1
12 1000 65536 65536 1
13 1000 65536 65536 1
14 1000 65536 65536 1
15 1000 65536 65536 1
16 1000 65536 65536 1
17 1000 65536 65536 1
18 1000 65536 65536 1
19 1000 65536 65536 1