atcoder#AGC026D. [AGC026D] Histogram Coloring

[AGC026D] Histogram Coloring

得分 : 11001100

问题陈述

考虑一个有 10910^9 行和 NN 列的方格。设 (i,j)(i, j) 为从左起第 ii(1iN)(1 \leq i \leq N) 和从底部起第 jj(1j109)(1 \leq j \leq 10^9) 的方格。

Snuke 已经切掉了网格的一部分,使得对于每个 i=1,2,...,Ni = 1, 2, ..., N,在第 ii 列中剩下的最底部 hih_i 个方格。现在,他将把剩下的方格涂成红色和蓝色。 找出涂色方格的方式,使得满足以下条件:

  • 每个剩下的方格要么涂成红色,要么涂成蓝色。
  • 对于所有 1iN11 \leq i \leq N-11jmin(hi,hi+1)11 \leq j \leq \min(h_i, h_{i+1})-1,在以下四个方格 (i,j),(i,j+1),(i+1,j)(i, j), (i, j+1), (i+1, j)(i+1,j+1)(i+1, j+1) 中,恰好有两个方格涂成红色,两个方格涂成蓝色。

由于方式的数量可能极大,结果需对 109+710^9+7 取模。

约束条件

  • 1N1001 \leq N \leq 100
  • 1hi1091 \leq h_i \leq 10^9

输入

输入从标准输入给出,格式如下:

NN

h1h_1 h2h_2 ...... hNh_N

输出

打印涂色方格的方式数量,对 109+710^9+7 取模。

9
2 3 5 4 1 2 4 2 1
12800

其中一种涂色方格的方式如下:

#
  ##  #
 ###  #
#### ###
#########
2
2 2
6

有六种涂色方格的方式,如下所示:

## ## ## ## ## ##
## ## ## ## ## ##
5
2 1 2 1 2
256

每种涂色方格的方式均满足条件。

9
27 18 28 18 28 45 90 45 23
844733013

记得对结果取模 109+710^9 + 7