CF1984F.Reconstruction

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有一个长度为 nn 的隐藏数组 a1,a2,…,ana_1, a_2, \ldots, a_n,其中每个元素都是 −m-m 到 mm 之间的整数(包含端点)。

你会得到一个长度为 nn 的数组 b1,b2,…,bnb_1, b_2, \ldots, b_n 和一个长度为 nn 的字符串 ss,其中 ss 由字符 P\texttt{P}、S\texttt{S} 和 ?\texttt{?} 组成。

对于每个 ii(1≤i≤n1 \leq i \leq n),必须满足:

  • 如果 si=Ps_i = \texttt{P},则 bib_i 是 a1a_1 到 aia_i 的前缀和。
  • 如果 si=Ss_i = \texttt{S},则 bib_i 是 aia_i 到 ana_n 的后缀和。

请输出有多少种方法可以将 ss 中所有的 ?\texttt{?} 替换为 P\texttt{P} 或 S\texttt{S},使得存在一个满足所有约束条件的数组 a1,a2,…,ana_1, a_2, \ldots, a_n,且每个元素的绝对值不超过 mm。

由于答案可能很大,请输出对 998 244 353998\,244\,353 取模后的结果。

输入格式

第一行包含一个整数 tt(1≤t≤1031 \leq t \leq 10^3),表示测试用例的数量。

每个测试用例的第一行包含两个整数 nn 和 mm(2≤n≤2⋅1032 \leq n \leq 2 \cdot 10^3,2≤m≤1092 \leq m \leq 10^{9}),分别表示隐藏数组 a1,a2,…,ana_1, a_2, \ldots, a_n 的长度和每个元素的最大绝对值。

每个测试用例的第二行包含一个长度为 nn 的字符串 ss,由字符 P\texttt{P}、S\texttt{S} 和 ?\texttt{?} 组成。

每个测试用例的第三行包含 nn 个整数 b1,b2,…,bnb_1, b_2, \ldots, b_n(∣bi∣≤m⋅n|b_i| \leq m \cdot n)。

所有测试用例中 nn 的总和不超过 5⋅1035 \cdot 10^3。

输出格式

对于每个测试用例,输出一个整数,表示有多少种方法将 ss 中所有的 ?\texttt{?} 替换为 P\texttt{P} 或 S\texttt{S},使得存在一个满足所有约束条件的数组 a1,a2,…,ana_1, a_2, \ldots, a_n,对 998 244 353998\,244\,353 取模。

输入输出样例

  • 输入#1

    6
    4 10
    PSPP
    1 9 8 10
    4 1000000000
    ????
    1 1 1 4000000000
    8 1000000000
    ?P?SSP?P
    -857095623 -1424391899 -851974476 673437144 471253851 -543483033 364945701 -178537332
    4 7
    PPSS
    4 2 1 3
    9 20
    ?????????
    1 2 3 4 5 6 7 8 9
    3 1000000000
    P??
    -145463248 -974068460 -1287458396

    输出#1

    1
    0
    2
    1
    14
    1

说明/提示

在第一个测试用例中,可以发现如下数组满足所有约束,因此答案为 11:

  1. P\texttt{P} — $ {[\color{red}{\textbf{1}},3,4,2]} $ :前缀和为 11。
  2. S\texttt{S} — $ {[1,\color{red}{\textbf{3},4,2}]} $ :后缀和为 99。
  3. P\texttt{P} — $ {[\color{red}{1,3,\textbf{4}},2]} $ :前缀和为 88。
  4. P\texttt{P} — $ {[\color{red}{1,3,4,\textbf{2}}]} $ :前缀和为 1010。

在第二个测试用例中,可以证明不存在所有 ∣ai∣≤m=109|a_i| \leq m = 10^9 的数组 aa 满足所有约束。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页