loj#P2351. 「JOI 2018 Final」毒蛇越狱
「JOI 2018 Final」毒蛇越狱
题目描述
JOI 研究所有 条毒蛇,这些毒蛇编号为 。每条毒蛇从头到尾被分成 段,每段的颜色为蓝、红中的一种。对于毒蛇 ,令 为 的二进制展开,若 ,则毒蛇 的第 段是蓝色的,否则是红色的。
每条毒蛇有一个 到 的整数表示它的毒性。给出一个长度为 的字符串,其中字符均在 0
到 9
的范围内,第 位字符表示第 条毒蛇的毒性。
这些毒蛇移动速度非常快,所以他们经常从 JOI 研究所逃跑,因此,研究所附近的住户投诉时常看见从研究所逃出的毒蛇。
研究所整理出了 天来住户的举报清单,第 天的收到的举报是一个长度为 且仅包含 0
, 1
, ?
的字符串 。
如果 的第 个字符为 0
,这意味着逃跑毒蛇的第 段是蓝色的;
如果 的第 个字符为 1
,这意味着逃跑毒蛇的第 段是红色的;
如果 的第 个字符为 ?
,这意味着没有人注意到逃跑毒蛇的第 段是什么颜色的。
研究所保证投诉均为准确的信息,并且根据这些信息,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 # | 分值 | ||
---|---|---|---|
1 | 5 | ||
2 | 7 | - | |
3 | 10 | ||
4 | 53 | - | |
5 | 25 | - |
对于所有输入数据,有 。