#ATagc026d. [AGC026D] Histogram Coloring

[AGC026D] Histogram Coloring

题目描述

考虑一个高为 10910^9、宽为 NN 的网格。我们用 (i,j)(i, j) 表示从左起第 ii 列、从下起第 jj 行的格子(1iN1 \leq i \leq N1j1091 \leq j \leq 10^9)。

すぬけ君对每个 i=1,2,,Ni = 1, 2, \ldots, N,将第 ii 列的格子从下往上只保留 hih_i 个,其余的去掉。然后,他用红色和蓝色两种颜料对剩下的格子进行涂色。请计算满足以下条件的涂色方案数。由于答案可能非常大,请输出其对 109+710^9+7 取模的结果。

  • 所有(切割后剩下的)格子都被涂成红色或蓝色之一。
  • 对于所有 1iN11 \leq i \leq N-11jmin(hi,hi+1)11 \leq j \leq \min(h_i, h_{i+1})-1,在 (i,j)(i, j)(i,j+1)(i, j+1)(i+1,j)(i+1, j)(i+1,j+1)(i+1, j+1) 这四个格子中,恰好有 22 个是红色,22 个是蓝色。

输入格式

输入以如下格式从标准输入读入。

NN h1h_1 h2h_2 \ldots hNh_N

输出格式

输出涂色方案数对 109+710^9+7 取模的结果。

样例 1

输入

9
2 3 5 4 1 2 4 2 1

输出

12800

样例 2

输入

2
2 2

输出

6

样例 3

输入

5
2 1 2 1 2

输出

256

样例 4

输入

9
27 18 28 18 28 45 90 45 23

输出

844733013

说明/提示

限制条件

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

样例解释 1

以下是其中一种涂色方案。

##
##
###
#####
###########

样例解释 2

存在如下 66 种涂色方案。

##
##
##
##
##
##
####
##
##
##
##
##
##

样例解释 3

任意涂色方案都满足条件。

样例解释 4

请注意输出方案数对 109+710^9+7 取模的结果。

由 ChatGPT 4.1 翻译