#P8810. [蓝桥杯 2022 国 C] 数组个数

[蓝桥杯 2022 国 C] 数组个数

题目描述

小蓝有一个长度为 nn 的数组 B=(b0,b1,,bn1)B = (b_0,b_1,\cdots,b_{n−1}),数组 BB 是由另一个长度为 nn 的环形数组 A=(a0,a1,,an1)A = (a_0,a_1,\cdots,a_{n−1}) 经过一次相邻最大化操作得到的,其中 aia_iai+1a_{i+1} 相邻,a0a_0an1a_{n−1} 相邻。

形式化描述为:

$$b_i= \begin{cases} \max\{a_{n-1},a_0,a_1\}& i=0\\ \max\{a_{i-1},a_i,a_{i+1}\}& 0<i<n-1\\ \max\{a_{n-2},a_{n-1},a_0\}& i=n-1\\ \end{cases} $$

小蓝想知道,可能有多少个满足条件的数组 AA,经过一次相邻最大化操作后能得到数组 BB,注意 AA 中的每个元素都要求为非负整数。

输入格式

输入的第一行包含一个整数 nn,表示数组长度。

第二行包含 nn 个整数 b0,b1,,bn1b_0,b_1,\cdots,b_{n−1},相邻两个整数之间用一个空格分隔。

输出格式

输出一行包含一个整数表示答案,答案可能很大,请输出答案除以 10000000071000000007(即 109+710^9+7)后的余数。

5
8 6 1 8 8
7

提示

【样例说明】

可能的 AA 数组有 77 个 :(6,0,0,1,8)(6,0,0,1,8)(6,0,1,0,8)(6,0,1,0,8)(6,0,1,1,8)(6,0,1,1,8)(6,1,0,0,8)(6,1,0,0,8)(6,1,0,1,8)(6,1,0,1,8)(6,1,1,0,8)(6,1,1,0,8)(6,1,1,1,8)(6,1,1,1,8)

【评测用例规模与约定】

对于 30%30\% 的评测用例,3n103≤n≤10

对于 60%60\% 的评测用例,3n1003≤n≤100

对于所有评测用例,3n10003 ≤ n ≤ 10000bi100 ≤ b_i ≤ 10

蓝桥杯 2022 国赛 C 组 G 题。