问题2901--小Q的难题

2901: 小Q的难题

时间限制: 1Sec 内存限制:128 MB
提交:7 解决:2
[ 状态] [ 讨论版] [ 提交] [命题人: ]
题目描述

Q有一个字符串s,并且其只由前m个小写字母组成(不一定全部出现),此时他想到了一个难题要考考你。


Q一共会进行q轮询问,每次他会向你说明两个下标l,rl <= r,即将slsl+1....sr构成一个新的的字符串t,现在你的任务是,利用前m个小写字母拼凑出一个最短的字符串(不一定全部使用),使得其不会与t的任意子序列pt1 < p1 < p2 < p3<.... < pk <= tn)相同。

输入

第一行包括两个整数m(1 <= m <= 26)n( 1 <= n <= 200000),分别表示约定好的可以使用的小写字母集的大小和字符串s的长度。

第二行包括一个长为n并且只包括前m个小写字母的字符串s

第三行包括一个整数q,代表要询问的次数。

接下来q行,每行包括两个整数lr(1 <= l <= r <= n),即表示选取的字符串的sl-r为字符串t

输出

输出q行,每行包括一个正整数表示你成功找出的合法字符串的最小长度。

样例输入 Copy
2 6 abaabb 3 1 4 2 5 3 6
样例输出 Copy
2 3 2
提示

[1,4]即为字串abaa,你可以选取字符串bb使得其不会与abaa的任意子序列相同。

[2,5]即为字串baab,你可以选取字符串aba使得其不会与baab的任意子序列相同。

[3,6]即为字串aabb,你可以选取字符串 ba使得其不会与aabb的任意子序列相同。

来源/分类