#206. 子序列之和

子序列之和

子序列之和

【题目描述】

给定一个长度为 nn 的正整数序列 a1,a2,,ana_1,a_2,\ldots,a_n

一个子序列可以通过从原序列中删除若干个元素,并保持剩余元素的相对顺序得到。空子序列也被计入,它的元素和为 00

现在,请你求出所有子序列的元素和之和,并将答案对 109+710^9+7 取模。

本题包含多组测试数据。


【输入描述】

第一行输入一个正整数 TT,表示测试数据组数。

接下来依次输入 TT 组测试数据。对于每组测试数据:

第一行输入一个正整数 nn

第二行输入 nn 个正整数 a1,a2,,ana_1,a_2,\ldots,a_n

保证:

  • 1T101\le T\le 10
  • 1n2×1051\le n\le 2\times 10^5
  • 1ai1091\le a_i\le 10^9
  • 单个测试点内所有测试数据的 nn 之和不超过 2×1052\times 10^5

【输出描述】

对于每组测试数据,输出一行一个整数,表示所有子序列的元素和之和对 109+710^9+7 取模后的结果。


【样例 1】

【样例 1 输入】

1
3
1 2 3

【样例 1 输出】

24

【样例 1 解释】

所有子序列的元素和分别为:

0,1,2,3,1+2,1+3,2+3,1+2+3.0,1,2,3,1+2,1+3,2+3,1+2+3.

它们的总和为 2424


【样例 2】

【样例 2 输入】

1
4
1 1 1 1

【样例 2 输出】

32

【样例 2 解释】

每个 11 都会出现在 23=82^3=8 个子序列中,因此答案为 4×8=324\times 8=32


【样例 3】

见选手目录下的 Data/sample3.inData/sample3.ans

该样例满足每组测试数据 n10n\le 10


【样例 4】

见选手目录下的 Data/sample4.inData/sample4.ans

该样例满足每组测试数据 n1000n\le 1000


【样例 5】

见选手目录下的 Data/sample5.inData/sample5.ans

该样例满足每组测试数据 n1000n\le 1000


【样例 6】

见选手目录下的 Data/sample6.inData/sample6.ans

该样例无特殊性质。


【数据规模与约定】

测试点编号 分数 特殊性质
1 ~ 4 20 每组测试数据 n10n\le 10
5 ~ 8 每组测试数据 n20n\le 20
9 ~ 12 每组测试数据 n1000n\le 1000
13 ~ 20 40

点击下载本题选手目录