#P12472. [集训队互测 2024] 基础 ABC 练习题
[集训队互测 2024] 基础 ABC 练习题
题目描述
给定两个集合 ,定义一个长度为 且仅包含 ABC
三种字符的串 是好的,当且仅当存在一种方案将 划分成 个长度为 的子序列,且这 个子序列都是 ABC
,BCA
或 CAB
。设 个子序列中 ABC
的个数为 ,BCA
的个数为 ,还要求 。
现在有一个长度为 的字符串 ,字符串中仅包含 ABC?
四种字符,你需要计算将所有 ?
都分别替换成 ABC
三个字符中的某一个的方案,使得串 是好的。
对 取模。
输入格式
本题单个测试点内有多组测试数据
第一行两个整数 ,表示数据组数和子任务编号,保证 , 表示是样例。
对于每组数据,第一行一个整数 。
第二行一个长度为 的 01 串 。若 中第 个字符为 ,则表示 中含有 这个元素,否则不含。第三行以同样的格式刻画 。
第四行一个长度为 的字符串 。
对于第 组数据,保证 。
输出格式
对于每组数据,输出一行一个整数,表示答案。
你可以选择是否回答每组数据,详情见说明部分。
3 0
1
11
11
ABC
2
101
101
A????C
3
1111
1111
?????????
1
5
1077
提示
样例解释 1
这个样例不满足 的限制,仅为理解题意用。
样例 2,3
见下发文件,分别满足子任务 1,2 的性质。
提示与说明
Subtask | 分值 | 特殊限制 |
---|---|---|
1 | 中没有 ? ,且 $ \left\vert S_1\right\vert=\left\vert S_2\right\vert=n+1 $ |
|
2 | 中没有 ? |
|
3 | 中只有 ? ,且 $ \left\vert S_1\right\vert=\left\vert S_2\right\vert=n+1 $ |
|
4 | $ \left\vert S_1\right\vert=\left\vert S_2\right\vert=n+1 $ | |
5 | 无特殊限制 |
对于所有数据,保证 。对于每个测试点内的第 组测试数据,保证 。
测试时开启所有合理的子任务依赖。 子任务依赖尚未配置。
对于每个测试点内的每组测试数据,如果你不打算回答这组测试数据,请输出 。否则输出一个整数表示答案。如果格式不正确不保证能得到对应的分数。
对于每个测试点,会根据你的输出给出你在这组数据上的评分系数 。每个 Subtask 的得分是这个 Subtask 中所有测试点得分系数的最小值乘以这个 Subtask 的分值。
首先,你的程序需要正常结束并且所有你选择回答的答案均正确,否则 。
在此基础上,记 为在所有数据中你的程序选择回答的最大的 ,则有
$$p= \begin{cases} \frac{1}{20} d && d\leq 5 \\ \frac{1}{4}+\frac{1}{50}(d-5) && d\leq 15 \\ \frac{9}{20}+\frac{3}{200}(d-15) && d\leq 35 \\ \frac{3}{4}+\frac{1}{100}(d-35) && d\leq 60 \end{cases} $$与 的大致图像如下图所示。