该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
称一个长度为 2k 的字符串 s 是二进制回文的,当且仅当 ∀i∈[0,2k),记 i 写成 k 位二进制数后为 a1a2…ak,对于十进制数 j=akak−1…a1,有 si=sj。注意 s 的下标从 0 开始,描述 k 位二进制数时前导 0 不可忽略。
给出一个长度为 n 的由小写字母组成的字符串 t,请回答以下格式的 Q 个询问:
- 给出两个数 p,k(0≤p<n,k≤19),求 t 的子串 tptp+1…tp+2k−1 是否是二进制回文的。注意,处理询问时需要认为子串 tptp+1…tp+2k−1 的下标范围是 [0,2k),若 p+2k>n,则直接认为该询问的子串不是二进制回文的。
输入格式
第一行两个正整数 n,Q(1≤n,Q≤5×105),含义如题所示。
第二行一个长度为 n 的字符串 t,保证 t 仅由小写字母组成。
接下来 Q 行每行两个正整数 p,k(0≤p<n,k≤19),表示一个询问。
输出格式
对于每个询问,若对应子串是二进制回文的,输出 1,否则输出 0。
8 4
axxyxxyb
0 3
1 1
0 2
3 2
1
1
1
1
附加样例
c.in
c.out
数据范围与提示
对于所有数据 1≤n,Q≤5×105。
| 子任务编号 |
分值 |
其他限制 |
| 1 |
13 |
n,Q≤1000 |
| 2 |
37 |
n,Q≤100000 |
| 3 |
17 |
保证 s 仅包含 a 和 b |
| 4 |
33 |
无 |