C. 二进制回文字符串

    Type: Default File IO: manacher 1000ms 256MiB

二进制回文字符串

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

称一个长度为 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

Not Attended
Status
Done
Rule
OI
Problem
4
Start at
2025-10-28 18:00
End at
2025-10-28 20:00
Duration
2 hour(s)
Host
Partic.
16