#P12472. [集训队互测 2024] 基础 ABC 练习题

    ID: 12301 Type: RemoteJudge 3000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 7 Uploaded By: Tags>动态规划 DP集训队互测2024Special Judge容斥原理

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

题目描述

给定两个集合 S1,S2S_1,S_2,定义一个长度为 3n3n 且仅包含 ABC 三种字符的串 ss 是好的,当且仅当存在一种方案将 ss 划分成 nn 个长度为 33 的子序列,且这 nn 个子序列都是 ABCBCACAB。设 nn 个子序列中 ABC 的个数为 xxBCA 的个数为 yy,还要求 xS1,yS2x\in S_1,y\in S_2

现在有一个长度为 3n3n 的字符串 ss,字符串中仅包含 ABC? 四种字符,你需要计算将所有 ? 都分别替换成 ABC 三个字符中的某一个的方案,使得串 ss 是好的。

2322^{32} 取模。

输入格式

本题单个测试点内有多组测试数据

第一行两个整数 T,idT,id,表示数据组数和子任务编号,保证 T=60,id[0,5]T=60,id\in[0,5]id=0id=0 表示是样例。

对于每组数据,第一行一个整数 nn

第二行一个长度为 n+1n+1 的 01 串 s1s_1。若 s1s_1 中第 ii 个字符为 11,则表示 S1S_1 中含有 i1i-1 这个元素,否则不含。第三行以同样的格式刻画 S2S_2

第四行一个长度为 3n3n 的字符串 ss

对于第 ii 组数据,保证 n=in=i

输出格式

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

你可以选择是否回答每组数据,详情见说明部分

3 0
1
11
11
ABC
2
101
101
A????C
3
1111
1111
?????????
1
5
1077

提示

样例解释 1

这个样例不满足 T=60T=60 的限制,仅为理解题意用。

样例 2,3

见下发文件,分别满足子任务 1,2 的性质。

提示与说明

Subtask 分值 特殊限制
1 2020 ss 中没有 ?,且 $ \left\vert S_1\right\vert=\left\vert S_2\right\vert=n+1 $
2 ss 中没有 ?
3 1010 ss 中只有 ?,且 $ \left\vert S_1\right\vert=\left\vert S_2\right\vert=n+1 $
4 2020 $ \left\vert S_1\right\vert=\left\vert S_2\right\vert=n+1 $
5 3030 无特殊限制

对于所有数据,保证 T=60T=60。对于每个测试点内的第 ii 组测试数据,保证 n=in=i

测试时开启所有合理的子任务依赖。 子任务依赖尚未配置。

对于每个测试点内的每组测试数据,如果你不打算回答这组测试数据,请输出 1-1。否则输出一个整数表示答案。如果格式不正确不保证能得到对应的分数。

对于每个测试点,会根据你的输出给出你在这组数据上的评分系数 p[0,1]p\in [0,1]。每个 Subtask 的得分是这个 Subtask 中所有测试点得分系数的最小值乘以这个 Subtask 的分值。

首先,你的程序需要正常结束并且所有你选择回答的答案均正确,否则 p=0p=0

在此基础上,记 dd 为在所有数据中你的程序选择回答的最大的 nn,则有

$$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} $$

ppdd 的大致图像如下图所示。