#agc041f. [agc041_f]Histogram Rooks
[agc041_f]Histogram Rooks
题目描述
考虑一个由 行 列方格组成的网格。阿博克裁剪了网格的一部分,对于每个 ,从左边起,第 列的底部 个方格保留下来。现在,他想要在剩余的方格中放置车。
车是国际象棋中的一种棋子,占据一个方格,并且可以水平或垂直移动,通过任意数量的未被占据的方格。车不能穿过阿博克裁剪掉的方格。
我们定义:如果一个方格被覆盖,那么它要么包含一个车,要么可以在一步内将车移动到该方格。
找到一种在剩余的方格中放置车的方法数,使得每个剩余的方格都被覆盖,结果对 取模。
约束条件
- 所有输入值均为整数。
输入
输入以以下格式从标准输入中给出:
N
h_1 h_2 ... h_N
输出
输出放置车的方法数,使得每个剩余的方格都被覆盖,结果对 取模。
示例输入 1
2
2 2
示例输出 1
11
任何至少有两个车的放置方法都是可以接受的。共有 种这样的放置方法。
示例输入 2
3
2 1 2
示例输出 2
17
以下 种车的放置方法满足条件(R
表示一个车,*
表示一个空方格):
R * * R * * R R R R R R
**R R** R*R R** *R* **R
R * R * * R * R * * R R
R*R *RR RR* R*R RRR RR*
R R R R R * * R R R
R*R *RR RRR RRR RRR
示例输入 3
4
1 2 4 1
示例输出 3
201
示例输入 4
10
4 7 4 8 4 6 8 2 3 6
示例输出 4
263244071