#P7670. [JOI2018] Snake Escaping
[JOI2018] Snake Escaping
题目描述
JOI 实验室有 条毒蛇。蛇的编号为 。每条蛇从头到尾分为 个部分。每个部分的颜色是蓝色或红色。 对于毒蛇 ,令 ()为 的二进制表达式。那么,
- 如果 ,毒蛇 从头开始的第 部分的颜色是蓝色,
- 如果 ,毒蛇 从头开始的第 部分的颜色是红色。
每条毒蛇都有一个 到 之间的整数,包括 和 ,为毒性。给出一个由 组成的长度为 的字符串 。第 个字符()是毒蛇 的毒性。由于毒蛇行动迅速,所以经常从 JOI 实验室逃走。住在实验室附近的人向 JOI 实验室投诉,他们看到毒蛇从实验室逃逸。您将收到 天的投诉清单。 第 天的投诉()是一个长度为 的字符串 ,由 组成。
- 如果 的第 个字符()为 ,这意味着第 天从实验室逃出的每条毒蛇的第 个部分是蓝色的,
- 如果 的第 个字符()为 ,这意味着第 天从实验室逃出的每条毒蛇的第 部分是红色的,并且
- 如果 的第 个字符()为 ,这意味着人们没有提供关于第 天从实验室逃逸的毒蛇的第 部分的信息。
所有的投诉都是准确的信息。所有从实验室逃逸的毒蛇都在同一天被 JOI 实验室的工作人员收留。可能发生同一条蛇在不同的日子逃脱。
JOI 实验室执行主任 K 教授为了估计毒蛇逃逸的风险,想知道可能逃出实验室的毒蛇的毒性总和。 你的任务是编写一个程序,根据 天的投诉列表,计算每天可能从实验室逃逸的蛇的毒性总和。
现给定描述毒蛇毒性的字符串 和 天的投诉列表,请编写一个程序来计算每天可能从实验室逃逸的蛇的毒性总和。
请注意,此任务的内存限制很小。
输入格式
第一行包含两个空格分隔的整数 ,,分别是每条毒蛇的部位数和投诉天数。第二行包含长度为 的字符串 ,描述了毒蛇的毒性。后面 行的第 行包含一个长度为 的字符串 ,为第 天的投诉。
输出格式
共 行,第 行应包含一个整数,即第 天可能从实验室逃逸的蛇的毒性总和。
3 5
12345678
000
0??
1?0
?11
???
1
10
12
12
36
4 8
3141592653589793
0101
?01?
??1?
?0??
1?00
01?1
??10
????
9
18
38
30
14
15
20
80
提示
数据规模与约定
对于 的数据,,, 是长度为 的字符串,字符串 由 组成, 是长度为 ()的字符串,字符串 由 ()组成。
- Subtask ( points):,。
- Subtask ( points):。
- Subtask ( points):。
- Subtask ( points):。
- Subtask ( points):没有额外的限制。
样例说明
对于样例 :,共 条毒蛇,它们中的每一条都分为 个部分。 投诉时间为 天。
- 第一天,可能逃出实验室的毒蛇只有毒蛇 。毒性总和为 。
- 第二天,可能从实验室逃逸的毒蛇是毒蛇 。毒性总和为 。
- 第三天,可能从实验室逃逸的毒蛇是毒蛇 。毒性总和为 。
- 第四天,可能从实验室逃逸的毒蛇是毒蛇 。毒性总和是 。
- 第五天,可能从实验室逃逸的毒蛇是毒蛇 。毒性总和为 。
题目说明:
来源于 The 17th Japanese Olympiad in Informatics (JOI 2017/2018) Final Round 的 T5:Snake Escaping。
由 @求学的企鹅 翻译整理。