#P12291. [蓝桥杯 2024 国 Java A] 粉刷匠小蓝
[蓝桥杯 2024 国 Java A] 粉刷匠小蓝
题目描述
小蓝是一名勤劳的粉刷匠,今天他收到了一份来自蓝桥学院的委托,需要为学院的 面墙进行粉刷。这 面墙从左到右依次排列,编号从 到 。起初,所有墙的颜色均为白色。
学院希望小蓝能将其中一部分墙刷成蓝色,以营造一种冷色调的艺术氛围。为此,学院给小蓝提供了一个长度为 的数组 ,来指定每面墙的颜色要求。具体地,如果 ,则第 面墙保持白色;如果 ,则小蓝需要将第 面墙刷成蓝色。
小蓝每次只能刷一面墙,他会将一面墙完整的刷完后再刷另一面墙。为了确保整体墙面的视觉效果,学院还提一个小小的要求:在粉刷过程中,如果要将第 面墙刷成蓝色,那么它右侧(第 面墙 第 面墙)蓝色的墙的个数必须是偶数(包括 个)。
现在,请你计算小蓝共有多少种刷墙顺序可以满足学院的要求?由于答案可能很大,因此你只需要给出答案对 取模后的结果即可。
在本题中,不同的刷墙方法只与小蓝刷墙的顺序有关。例如,先刷第 面墙再刷第 面墙,与先刷第 面墙再刷第 面墙,被视为两种不同的方法。
输入格式
输入的第一行包含一个正整数 ,表示墙的数量。
第二行包含 个整数 ,相邻整数之间使用一个空格分隔,按编号从 到 的顺序依次表示每面墙的颜色要求。
输出格式
输出一行包含一个整数,表示满足要求的刷墙顺序数量对 取模后的结果。
4
1 1 1 1
4
2
0 0
1
提示
样例说明
在样例 中,有 面墙,且都需要刷为蓝色。总共有以下 种粉刷顺序可以满足学院的要求:
- :先刷第 面,再刷第 面,然后刷第 面,最后刷第 面。
- :先刷第 面,再刷第 面,然后刷第 面,最后刷第 面。
- :先刷第 面,再刷第 面,然后刷第 面,最后刷第 面。
- :先刷第 面,再刷第 面,然后刷第 面,最后刷第 面。
在样例 2 中,有 面墙,且都要保持白色。只有 种刷墙方法可以满足学院的要求,即不刷任何一面墙壁。
评测用例规模与约定
- 对于 的评测用例,,。
- 对于所有评测用例,,。