CF1984F.Reconstruction
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一个长度为 n 的隐藏数组 a1,a2,…,an,其中每个元素都是 −m 到 m 之间的整数(包含端点)。
你会得到一个长度为 n 的数组 b1,b2,…,bn 和一个长度为 n 的字符串 s,其中 s 由字符 P、S 和 ? 组成。
对于每个 i(1≤i≤n),必须满足:
- 如果 si=P,则 bi 是 a1 到 ai 的前缀和。
- 如果 si=S,则 bi 是 ai 到 an 的后缀和。
请输出有多少种方法可以将 s 中所有的 ? 替换为 P 或 S,使得存在一个满足所有约束条件的数组 a1,a2,…,an,且每个元素的绝对值不超过 m。
由于答案可能很大,请输出对 998244353 取模后的结果。
输入格式
第一行包含一个整数 t(1≤t≤103),表示测试用例的数量。
每个测试用例的第一行包含两个整数 n 和 m(2≤n≤2⋅103,2≤m≤109),分别表示隐藏数组 a1,a2,…,an 的长度和每个元素的最大绝对值。
每个测试用例的第二行包含一个长度为 n 的字符串 s,由字符 P、S 和 ? 组成。
每个测试用例的第三行包含 n 个整数 b1,b2,…,bn(∣bi∣≤m⋅n)。
所有测试用例中 n 的总和不超过 5⋅103。
输出格式
对于每个测试用例,输出一个整数,表示有多少种方法将 s 中所有的 ? 替换为 P 或 S,使得存在一个满足所有约束条件的数组 a1,a2,…,an,对 998244353 取模。
输入输出样例
输入#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
说明/提示
在第一个测试用例中,可以发现如下数组满足所有约束,因此答案为 1:
- P — $ {[\color{red}{\textbf{1}},3,4,2]} $ :前缀和为 1。
- S — $ {[1,\color{red}{\textbf{3},4,2}]} $ :后缀和为 9。
- P — $ {[\color{red}{1,3,\textbf{4}},2]} $ :前缀和为 8。
- P — $ {[\color{red}{1,3,4,\textbf{2}}]} $ :前缀和为 10。
在第二个测试用例中,可以证明不存在所有 ∣ai∣≤m=109 的数组 a 满足所有约束。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?