60 lines
1021 B
Markdown
60 lines
1021 B
Markdown
|
# 平均数之和
|
|||
|
|
|||
|
## 题目描述
|
|||
|
|
|||
|
对于一个长度为 $n$ 的数组,有 $\frac{n \times (n + 1)}{2}$ 个连续子区间。对于子区间 $a[l\sim r]$,其平均值为
|
|||
|
$$
|
|||
|
\frac{a[l]+...+a[r]}{r-l+1}
|
|||
|
$$
|
|||
|
|
|||
|
求数组的所有子区间的平均数之和,对 $P=10^9+7$ 取模。
|
|||
|
|
|||
|
* 模意义下的除法:如果需要计算 $a/b \pmod P$,可以使用 $a\times b^{P-2} \pmod P$ 实现
|
|||
|
|
|||
|
## 输入格式
|
|||
|
|
|||
|
第一行1个整数 $t$,代表数据组数
|
|||
|
|
|||
|
每组数据第1行一个正整数 $n$,表示数组长度
|
|||
|
|
|||
|
每组数据第2行 $n$ 个正整数 $a[1\sim n]$
|
|||
|
|
|||
|
## 输出格式
|
|||
|
|
|||
|
输出 $t$ 行,每行1个整数代表答案
|
|||
|
|
|||
|
## 样例 #1
|
|||
|
|
|||
|
### 样例输入 #1
|
|||
|
|
|||
|
```
|
|||
|
5
|
|||
|
7
|
|||
|
1 4 3 9 3 6 10
|
|||
|
4
|
|||
|
4 9 2 9
|
|||
|
4
|
|||
|
9 9 1 7
|
|||
|
6
|
|||
|
8 9 1 6 5 7
|
|||
|
10
|
|||
|
5 6 10 5 7 9 2 4 3 2
|
|||
|
```
|
|||
|
|
|||
|
### 样例输出 #1
|
|||
|
|
|||
|
```
|
|||
|
792857292
|
|||
|
166666727
|
|||
|
500000066
|
|||
|
633333457
|
|||
|
564286026
|
|||
|
```
|
|||
|
|
|||
|
## 提示
|
|||
|
|
|||
|
对于 30% 的测试点,$1 \leq n \leq 100$
|
|||
|
|
|||
|
对于 70% 的测试点,$1 \leq n \leq 5000$
|
|||
|
|
|||
|
对于 100% 的测试点,$1\le t\le 10, 1 \leq n \leq 10^5, 1 \leq a[i] \leq 100$
|