SP8059 AMR10E - Stocks Prediction
题目描述
我的家人常去的一家百货商店想要预测每个月各种商品的销售量。库存过多费用高昂,而缺货又影响销售,因此需要找到平衡。作为销售顾问,经理找我帮忙。我设计了一个模型,用来预测每月的销售量 $S$ 是基于过去 $R$ 个月的销售情况。这个模型如下:
$$ S(n) = a_1 \cdot S(n-1) + a_2 \cdot S(n-2) + \ldots + a_R \cdot S(n-R) $$
其中 $S(n)$ 表示第 $n$ 个月的预测销售量($n > R$),而 $S(1)$ 到 $S(R)$ 是给定的初始值。
经理对我的模型在帮助管理库存方面的表现感到满意。他希望我计算出每隔 $K$ 个月的销售额,并求出这些月中的前 $N$ 个的销售总和。例如,他可能想要未来 10 年中每年圣诞节月份(即 $N=10$ 和 $K=12$, 1 月为第一个月)的销售额总和,或者未来 2 年中每个季度末月份(即 $N=2$ 和 $K=3$)的销售额总和。
你能帮我写个程序来实现这些计算吗?
输入格式
第一行是测试用例的数量 $T$。每个测试用例包含三行:
- 第一行是三个整数 $N$、$R$、$K$。
- 第二行是 $R$ 个初始销售值 $S(1), S(2), \ldots, S(R)$。
- 第三行是 $R$ 个系数 $a_1, a_2, \ldots, a_R$,用于预测模型。
输出格式
对于每个测试用例,输出经理要求的销售总和,并对 $1,000,000,007$ 取模。
说明/提示
- $1 \leq T \leq 40$
- $1 \leq N \leq 1000000000$
- $1 \leq R \leq 8$
- $1 \leq K \leq 8$
- $0 \leq \text{所有其他输入值} < 1000000007$
**样例输入**
```
2
4 1 1
1
2
3 2 3
1 1
1 1
```
**样例输出**
```
15
44
```
**样例解释**
在第一个测试用例中,$S(1)$ 为 1,且每月的销售量关系式为 $S(n) = 2 \cdot S(n-1)$。因为 $K$ 为 1,所以列表包括所有 $S$ 的项,结果就是前 4 项之和。
在第二个测试用例中,序列 $S$ 为斐波那契数列:1, 1, 2, 3, 5, 8, 13, 21, 34。挑选出的销售额为 2, 8, 34,它们的总和为 44。
**本翻译由 AI 自动生成**