bdfz_2024_summer/day2/U458258/U458258.md
2024-08-03 08:53:34 +08:00

1021 B
Raw Blame History

平均数之和

题目描述

对于一个长度为 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