#LQ1352. 数组个数
数组个数
问题描述
小蓝有一个长度为 的数组 , 数组 是由另一个长度 为 的环形数组 经过一次相邻最大化操作得到的, 其中 与 相邻, 与 相邻。
形式化描述为:
$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}$
小蓝想知道, 可能有多少个满足条件的数组 , 经过一次相邻最大化操作后能得到数组 , 注意 中的每个元素都要求为非负整数。
输入格式
输入的第一行包含一个整数 , 表示数组长度。
第二行包含 个整数 , 相邻两个整数之间用一个空格分隔。
输出一行包含一个整数表示答案, 答案可能很大, 请输出答案除以 1000000007 后的余数。
5
8 6 1 8 8
7
样例说明
可能的 数组有 7 个: $(6,0,0,1,8) , (6,0,1,0,8) , (6,0,1,1,8) , (6,1,0,0,8) , (6,1,0,1,8) , (6,1,1,0,8) , (6,1,1,1,8)$。
评测用例规模与约定
对于 30% 的评测用例, ;
对于 60% 的评测用例, ;
对于所有评测用例, 。