P16646 [GKS 2018 #C] Kickstart Alarm
题目描述
Shil 每天早上起床都非常困难,因此他决定买一个功能强大的闹钟来 Kickstart 他的一天。这个闹钟被称为 Kickstart Alarm。它预配置了 $K$ 个强有力的唤醒呼叫。在睡觉前,用户用参数数组 $A_1, A_2, \dots, A_N$ 对闹钟进行编程。早上,闹钟会响 $K$ 次,第 $i$ 次唤醒呼叫的强度为 $\text{POWER}_i$。
为了计算 $\text{POWER}_i$,闹钟会生成参数数组的所有连续子数组,并计算所有连续子数组的第 $i$ 次指数幂之和。子数组 $A_j, A_{j+1}, \dots, A_k$ 的第 $i$ 次指数幂定义为 $A_j \times 1^i + A_{j+1} \times 2^i + A_{j+2} \times 3^i + \dots + A_k \times (k - j + 1)^i$。因此,$\text{POWER}_i$ 就是参数数组所有连续子数组的第 $i$ 次指数幂之和。
例如,若 $i = 2$,且 $A = [1, 4, 2]$,则第 $i$ 次指数幂的计算如下:
* $[1]$ 的第 2 次指数幂 $= 1 \times 1^2 = 1$
* $[4]$ 的第 2 次指数幂 $= 4 \times 1^2 = 4$
* $[2]$ 的第 2 次指数幂 $= 2 \times 1^2 = 2$
* $[1, 4]$ 的第 2 次指数幂 $= 1 \times 1^2 + 4 \times 2^2 = 17$
* $[4, 2]$ 的第 2 次指数幂 $= 4 \times 1^2 + 2 \times 2^2 = 12$
* $[1, 4, 2]$ 的第 2 次指数幂 $= 1 \times 1^2 + 4 \times 2^2 + 2 \times 3^2 = 35$
总和为 $71$。
今晚,Shil 第一次使用他的 Kickstart Alarm。因此,他非常担心闹钟早上可能发出的声音。它可能会吵醒邻居,甚至更糟,可能会吵醒整个星球!然而,对他来说计算每次唤醒呼叫的强度相当困难。给定 $K$ 和参数数组 $A_1, A_2, \dots, A_N$,你能通过计算每次唤醒呼叫的强度之和 $\text{POWER}_1 + \text{POWER}_2 + \dots + \text{POWER}_K$ 来帮助他吗?
输入格式
输入的第一行给出测试用例的数量 $T$。接下来有 $T$ 个测试用例。每个测试用例由一行九个整数组成:$N$、$K$、$x_1$、$y_1$、$C$、$D$、$E_1$、$E_2$ 和 $F$。其中 $N$ 是数组 $A$ 的长度,$K$ 是唤醒呼叫的次数。其余的值是用于生成数组 $A$ 元素的参数,生成方式如下。
对于 $i = 2$ 到 $N$,使用以下递推式生成 $x_i$ 和 $y_i$:
* $x_i = (C \times x_{i-1} + D \times y_{i-1} + E_1) \bmod F$。
* $y_i = (D \times x_{i-1} + C \times y_{i-1} + E_2) \bmod F$。
对于所有 $i = 1$ 到 $N$,定义 $A_i = (x_i + y_i) \bmod F$。
输出格式
对于每个测试用例,输出一行,格式为 `Case #x: POWER`,其中 $x$ 是测试用例编号(从 $1$ 开始),`POWER` 是对于 $i = 1$ 到 $K$ 的 $\text{POWER}_i$ 之和。由于 `POWER` 可能非常大,请输出它对 $1000000007$(即 $10^9 + 7$)取模的结果。
说明/提示
在样例 #1 中,参数数组为 $[3, 2]$。所有连续子数组为 $[3]$、$[2]$、$[3, 2]$。
对于 $i = 1$:
* $[3]$ 的第 1 次指数幂 $= 3 \times 1^1 = 3$
* $[2]$ 的第 1 次指数幂 $= 2 \times 1^1 = 2$
* $[3, 2]$ 的第 1 次指数幂 $= 3 + 2 \times 2^1 = 7$
所以 $\text{POWER}_1 = 12$。
对于 $i = 2$:
* $[3]$ 的第 2 次指数幂 $= 3 \times 1^2 = 3$
* $[2]$ 的第 2 次指数幂 $= 2 \times 1^2 = 2$
* $[3, 2]$ 的第 2 次指数幂 $= 3 + 2 \times 2^2 = 11$
所以 $\text{POWER}_2 = 16$。
对于 $i = 3$:
* $[3]$ 的第 3 次指数幂 $= 3 \times 1^3 = 3$
* $[2]$ 的第 3 次指数幂 $= 2 \times 1^3 = 2$
* $[3, 2]$ 的第 3 次指数幂 $= 3 + 2 \times 2^3 = 19$
所以 $\text{POWER}_3 = 24$。
### 限制条件
$1 \le T \le 100$。
$1 \le x_1 \le 10^5$。
$1 \le y_1 \le 10^5$。
$1 \le C \le 10^5$。
$1 \le D \le 10^5$。
$1 \le E_1 \le 10^5$。
$1 \le E_2 \le 10^5$。
$1 \le F \le 10^5$。
**小数据集(测试集 1 – 可见)**
$1 \le N \le 100$。
$1 \le K \le 20$。
**大数据集(测试集 2 – 隐藏)**
$1 \le N \le 10^6$。
$1 \le K \le 10^4$。
翻译由 DeepSeek V4 Pro 完成