#hASHybttg020106. 1460:A Horrible Poem
1460:A Horrible Poem
好的,这是整理好的题面,格式清晰。
题目描述
给出一个由小写英文字母组成的字符串 ( S ),再给出 ( q ) 个询问。
每个询问给出两个整数 ( a, b ),要求回答 ( S[a..b] )(子串)的最短循环节长度。
如果字符串 ( B ) 是字符串 ( A ) 的循环节,那么 ( A ) 可以由 ( B ) 重复若干次得到。
输入格式
第一行一个正整数 ( n ),表示 ( S ) 的长度。
第二行 ( n ) 个小写英文字母,表示字符串 ( S )。
第三行一个正整数 ( q ),表示询问个数。
接下来 ( q ) 行,每行两个正整数 ( a, b ),表示询问子串 ( S[a..b] ) 的最短循环节长度(下标从 1 开始)。
输出格式
输出 ( q ) 行,每行一个正整数,表示对应询问的答案。
数据范围
- ( 1 \le a \le b \le n \le 5\times 10^5 )
- ( q \le 2\times 10^6 )
输入样例
8
aaabcabc
3
1 3
3 8
4 8
输出样例
1
3
5
样例解释
字符串 ( S = \text{"aaabcabc"} )(长度 8)。
询问 1
( a=1, b=3 ),子串 "aaa"
最短循环节是 "a",长度 1。
输出 1。
询问 2
( a=3, b=8 ),子串 "abcabc"
最短循环节是 "abc",长度 3(因为 "abcabc" 可以由 "abc" 重复 2 次得到)。
输出 3。
询问 3
( a=4, b=8 ),子串 "bcabc"
最短循环节是它本身,因为不能由更短的串重复得到,长度 = 子串长度 = 5。
输出 5。