luogu#P16329. bloom
bloom
背景

题目描述
给定 ,和两个长为 的序列 和 , 一些位置确定,一些不确定,每个位置有类型 。你要给不确定的 赋值,使得 。求对于所有 的赋值方式的以下游戏的权值和对 取模的结果。
-
游戏将进行 轮,第 轮开始时第 个人的血量 设置为 ,类型为 的二进制表示下第 位的值。 的取值从 开始。
-
每轮开始时,所有类型 的人开始同时往右走,类型 的人不动,每过 单位时间移动一格。
-
若一个类型 碰到类型 的点,设两人的编号为 ,,同时执行 , 的人将会消失。
-
这一轮的权值为过了 单位时间后所有存在的人的初始的 的乘积。(若最后所有人死亡,则权值为 )
-
游戏的权值为 轮的权值之和。
输入格式
第一行两个正整数 。
第二行 个非负整数 ,其中 表示未确定的位置。
第三行 个正整数 表示每个人的初始权值。
输出格式
一行一个整数,表示所有情况的游戏权值之和。
2 3
1 2
2 2
14
4 4
1 1 0 0
2 2 3 3
239
6 10
0 1 1 0 0 2
743619643 294476845 718152187 194051637 59774782 188785641
285625840
提示
【样例解释 1】
游戏将进行 轮:
-
第 轮时,两个人的类型分别为 ,都能活到最后,权值为 。
-
第 轮时,两个人的类型分别为 ,此时在经过 单位时间后两人相撞,生命值变为 ,只有第二个人活下来,权值为 。
-
第 轮时,两个人的类型分别为 ,都能活到最后,权值为 。
-
第 轮时,两个人的类型分别为 ,都能活到最后,权值为 。
所以总权值为 。
【数据范围】
本题使用子任务捆绑。
对于所有测试数据,,,,保证至少存在一组合法的 。
| 子任务编号 | 特殊性质 | 分值 | |
|---|---|---|---|
| 无 | |||
| 有 | |||
| 无 |
特殊性质:保证 。