#P12473. [集训队互测 2024] 基础 01? 练习题

    ID: 12302 Type: RemoteJudge 2000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 7 Uploaded By: Tags>线段树倍增集训队互测2024矩阵乘法扫描线

[集训队互测 2024] 基础 01? 练习题

题目描述

下标从 00 开始的 01\texttt{01} 无穷序列 PP 由如下方式生成:

  • P0=0P_0=\texttt{0}
  • P2n=PnP_{2n}=P_{n}
  • P2n+1=1PnP_{2n+1}=\texttt{1}-P_{n}

这里给出 PP 序列的前若干项:

01101001100101101001011001101001\texttt{01101001100101101001011001101001}\cdots

方便起见,接下来将 PP 看做一个字符串,且字符串的下标均从 00 开始。

定义 f(S)f(S) 表示有限 01\texttt{01}SS 是否为 PP 的子串,若是,则 f(S)=1f(S)=1,否则为 00

定义 g(S)g(S) 表示有限 01\texttt{01}SS 中【是 PP 的子串】的子串个数,即:

$$g(S)=\sum_{0\le l \le r < |S|}f(S_lS_{l+1}\cdots S_r) $$

接下来定义 h(S)h(S):对于一个仅包含 0,1,?\texttt{0,1,?} 的有限字符串 SS 中,将 SS?\texttt{?} 各自替换成 0\texttt{0}1\texttt{1},则 h(S)h(S) 表示所有可能生成的 01\texttt{01}TTg(T)g(T) 之和。

给定长度为 nn 的仅包含 0,1,?\texttt{0,1,?} 的字符串 SS,有 mm 次询问,每次询问给出 l,rl,r,求出 h(SlSl+1Sr)h(S_lS_{l+1}\cdots S_r) 的值。

由于答案可能很大,所以输出答案对 998244353998244353 取模的结果。

输入格式

第一行两个正整数 n,mn,m

第二行一个长度为 nn 的仅包含 0,1,?\texttt{0,1,?} 的字符串 SS

接下来 mm 行,每行两个非负整数 l,rl,r,表示一组询问。

输出格式

输出 mm 行,对于每组询问输出一行一个整数表示答案。

4 4
??00
0 0
0 1
0 2
0 3
2
12
23
35

提示

样例 2

见下发文件,满足 n,m15n,m \le 15 和特殊性质 C。

样例 3

见下发文件,满足 n,m100n,m \le 100 和特殊性质 B。

样例 4

见下发文件,满足 n,m103n,m \le 10^3 和特殊性质 BC。

样例 5

见下发文件,满足 n,m103n,m \le 10^3 和特殊性质 A。

数据范围

对于 100%100\% 的数据,1n5×1041\le n \le 5\times 10^41m2×1051\le m \le 2\times 10^50l1r1<n0\le l_1\le r_1 < n0l2r2<n0\le l_2\le r_2 < n

子任务 nn\le mm\le 特殊性质 分值
1 1515 A 10
2 2020 2×1052\times 10^5
3 5×1045\times 10^4 A 5
4 11 BC
5 C 15
6 500500 10310^3 B 5
7 10310^3 2×1032\times 10^3 BC
8 5×1035\times 10^3 10510^5 C 10
9 2×1042\times 10^4 15
10 5×1045\times 10^4 2×1052\times 10^5 20

特殊性质 A:rl+115r-l+1 \le 15

特殊性质 B:SS?\texttt{?} 的个数不超过 88

特殊性质 C:l=0l=0