C. 二进制回文字符串

    传统题 文件IO:manacher 1000ms 256MiB

二进制回文字符串

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

称一个长度为 2k2^k 的字符串 ss 是二进制回文的,当且仅当 i[0,2k)\forall i\in [0, 2^k),记 ii 写成 kk 位二进制数后为 a1a2ak\overline{a_1 a_2 \ldots a_k},对于十进制数 j=akak1a1j=\overline{a_k a_{k-1} \ldots a_1},有 si=sjs_i=s_j。注意 ss 的下标从 0 开始,描述 kk 位二进制数时前导 0 不可忽略。

给出一个长度为 nn 的由小写字母组成的字符串 tt,请回答以下格式的 QQ 个询问:

  • 给出两个数 p,k(0p<n,k19)p, k(0\leq p< n, k\leq 19),求 tt 的子串 tptp+1tp+2k1t_pt_{p+1}\dots t_{p+2^k-1} 是否是二进制回文的。注意,处理询问时需要认为子串 tptp+1tp+2k1t_pt_{p+1}\dots t_{p+2^k-1} 的下标范围是 [0,2k)[0, 2^k),若 p+2k>np+2^k > n,则直接认为该询问的子串不是二进制回文的。

输入格式

第一行两个正整数 n,Q(1n,Q5×105)n, Q\left(1 \leq n, Q \leq 5 \times 10^5\right),含义如题所示。

第二行一个长度为 nn 的字符串 tt,保证 tt 仅由小写字母组成。

接下来 QQ 行每行两个正整数 p,k(0p<n,k19)p, k(0 \leq p<n, k \leq 19),表示一个询问。

输出格式

对于每个询问,若对应子串是二进制回文的,输出 1,否则输出 0

8 4
axxyxxyb
0 3
1 1
0 2
3 2
1
1
1
1

附加样例

c.in
c.out

数据范围与提示

对于所有数据 1n,Q5×1051 \leq n, Q \leq 5 \times 10^5

子任务编号 分值 其他限制
1 13 n,Q1000n, Q \leq 1000
2 37 n,Q100000n, Q \leq 100000
3 17 保证 ss 仅包含 a\mathrm{a}b\mathrm{b}
4 33

1028

未参加
状态
已结束
规则
OI
题目
4
开始于
2025-10-28 18:00
结束于
2025-10-28 20:00
持续时间
2 小时
主持人
参赛人数
16