9300: 数组个数

内存限制:128 MB 时间限制:1 S
题面:传统 评测方式:文本比较 上传者:
提交:6 通过:3

题目描述

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

形式化描述为:


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


大家到洛谷提交:


P8810 [蓝桥杯 2022 国 C] 数组个数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

输入格式


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

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


输出格式

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

输入样例 复制

5
8 6 1 8 8

输出样例 复制

7

数据范围与提示

可能的 $A$ 数组有 $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\%$ 的评测用例,$3≤n≤10$;

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

对于所有评测用例,$3 ≤ n ≤ 1000$,$0 ≤ b_i ≤ 10$。