给定一个长度为 n 的数组 a,其中每个元素 ai 满足 1≤ai≤n。定义一个子序列的权值如下:
现在,我们要计算:数组 a 中,所有满足上述“排列子序列”条件的子序列,它们的权值之和。最后结果需对 109+7 取模。
小苯定义一个排列的权值为:
如果排列不满足严格上升,则权值为0。
否则,严格上升的排列其权值为:排列的长度。
现在小苯有个长为n的a数组,他想知道a中所有“排列”子序列 (即:此子序列是一个排列)的权值之和,请你帮他算一算吧。
每个测试文件内都包含多组测试数据。
第一行一个正整数 T(1<T<100),表示测试数据的组数
接下来对于每组测试数据,输入包含两行。
第一行一个正整数n(1≤n≤2×105),表示数组a的长度。
第二行n个整数ai(1≤ai≤n),表示数组a。
(保证所有测试数据中n的总和不超过3×105。)
输出T行,每行一个整数表示当前测试用例的答案,即:所有“排列”子序列的权值之和。
(注意:由于答案可能很大,因此你只要输出答案对1000000007取模的值即可。)
输入
1
3
1 1 2
输出
6
说明
所有的“排列”子序列有:
{1},{1},{1,2},{1,2}权值求和为6。