AT_joi2018ho_e.毒蛇の脱走 (Snake Escaping)
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
在 JOI 研究所里饲养着 2L 条毒蛇,每条毒蛇编号为 0,1,…,2L−1。每条毒蛇的身体从头部开始被分为 L 个部分,每个部分要么是蓝色,要么是红色。对于毒蛇 i,将 i 用二进制表示为 i=∑k=1Lck2L−k(0≤ck≤1)时:
- 若 ck=0,则毒蛇 i 从头部数第 k 个部分为蓝色;
- 若 ck=1,则毒蛇 i 从头部数第 k 个部分为红色。
每条毒蛇都有一个称为“毒性”的整数值,范围在 0 到 9 之间。给定一个由 0 到 9 组成、长度为 2L 的字符串 S,第 i 个字符(1≤i≤2L)表示毒蛇 i−1 的毒性。
毒蛇们行动迅速,经常会从 JOI 研究所逃脱。每当有毒蛇逃脱时,周边居民会向研究所投诉。
你将得到 Q 天的投诉信息。第 d 天(1≤d≤Q)的投诉信息用一个由 0、1、? 组成、长度为 L 的字符串 Td 表示:
- Td 的第 j 个字符(1≤j≤L)为
0时,表示第 d 天逃脱的所有毒蛇从头部数第 j 个部分为蓝色; - Td 的第 j 个字符为
1时,表示第 d 天逃脱的所有毒蛇从头部数第 j 个部分为红色; - Td 的第 j 个字符为
?时,表示居民未能提供该部分的信息。
所有投诉信息都是准确的。当天逃脱的毒蛇会被研究所工作人员当天抓回,之后不会再次逃脱。
为了评估毒蛇逃脱带来的风险,JOI 研究所的 K 理事长希望知道每天可能逃脱的毒蛇的毒性总和。你的任务是,根据 Q 天的投诉信息,编写程序计算每天可能逃脱的毒蛇的毒性总和。
输入格式
从标准输入读取以下内容。
- 第 1 行包含两个整数 L,Q,用空格分隔,分别表示毒蛇身体部分的数量和投诉天数。
- 第 2 行包含一个长度为 2L 的字符串 S,表示每条毒蛇的毒性。
- 接下来的 Q 行,第 d 行(1≤d≤Q)包含一个长度为 L 的字符串 Td,表示第 d 天的投诉信息。
输出格式
输出 Q 行。第 d 行输出第 d 天可能逃脱的毒蛇的毒性总和。
输入输出样例
输入#1
3 5 12345678 000 0?? 1?0 ?11 ???
输出#1
1 10 12 12 36
输入#2
4 8 3141592653589793 0101 ?01? ??1? ?0?? 1?00 01?1 ??10 ????
输出#2
9 18 38 30 14 15 20 80
说明/提示
任务
给定毒蛇毒性字符串 S 和 Q 天的投诉信息,计算每天可能逃脱的毒蛇的毒性总和。
注意内存限制较小。
限制
所有输入数据满足以下条件:
- 1≤L≤20。
- 1≤Q≤1000000。
- S 是长度为 2L 的字符串。
- S 仅包含
0到9的字符。 - Td 是长度为 L 的字符串(1≤d≤Q)。
- Td 仅包含
0、1、?字符(1≤d≤Q)。
子任务
子任务 1 [5 分]
满足以下条件:
- L≤10。
- Q≤1000。
子任务 2 [7 分]
- 满足 L≤10。
子任务 3 [10 分]
- 满足 L≤13。
子任务 4 [53 分]
- 满足 Q≤50000。
子任务 5 [25 分]
- 无额外限制。
样例解释 1
在此输入样例中,L=3。毒蛇被分为 3 个部分,共有 23=8 条毒蛇。投诉持续 5 天。
- 第 1 天可能逃脱的毒蛇只有毒蛇 0,毒性总和为 1。
- 第 2 天可能逃脱的毒蛇为毒蛇 0,1,2,3,毒性总和为 10。
- 第 3 天可能逃脱的毒蛇为毒蛇 4,6,毒性总和为 12。
- 第 4 天可能逃脱的毒蛇为毒蛇 3,7,毒性总和为 12。
- 第 5 天可能逃脱的毒蛇为毒蛇 0,1,2,3,4,5,6,7,毒性总和为 36。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?