uoj#P420. 【集训队作业2018】矩形
【集训队作业2018】矩形
本题中约定 $0^0 = 1$。
Snuke 使用动态规划解决了一道题目。具体来说,她设计了如下递推式: $$ F(i, j) = \begin{cases} 0, & \text{if $i = 0$;} \\ f_i, & \text{if $i > 0$ and $j = 0$;} \\ aF(i - 1, j) + bF(i, j - 1) + c, & \text{if $i > 0$ and $j > 0$.} \end{cases} $$ 其中 $i, j$ 是非负整数,$a, b, c$ 是给定的常数,$f_i$ 是给定的数列。
Snuke 需要求出 $F(n, m)$,所以她对于 $1 \le i \le n, 1 \le j \le m$ 计算了 $F(i, j)$,这些值形成了一个 $n \times m$ 的矩阵。
Takahashi 希望你告诉她这个矩阵。为了避免过多的输出,你只需要输出这个矩阵的哈希值。
具体来说,给定整数 $h$ 和质数 $p$,你需要输出 $$ \left( \sum_{i = 1}^{n} \sum_{j = 1}^{m} F(i, j) \, h^{(i - 1)m + (j - 1)} \right) \bmod p $$ 的值。
输入格式
从标准输入读入数据。
第一行输入一个整数 $T$,表示子任务编号。
第二行输入四个整数 $n, m, h, p$。
第三行输入三个整数 $a, b, c$。
第四行输入 $n$ 个整数 $f_1, \ldots, f_n$。
输出格式
输出到标准输出。
输出一行,包含一个整数,表示矩阵的哈希值。
1
2 2 2 998244353
2 1 1
0 1
93
题目描述中提到的矩阵是 $\left( \begin{matrix} 1 & 2 \\ 4 & 9 \end{matrix} \right)$,其哈希值为 $$ 1 \times 2^0 + 2 \times 2^1 + 4 \times 2^2 + 9 \times 2^3 = 93. $$
2
9 100000 5 998244353
5 4 7
6 5 6 9 3 7 4 5 2
623270548
3
9 1000000000 5 235497281
5 0 7
6 5 6 9 3 7 4 5 2
211538270
限制及约定
对于所有数据,保证:
- $1 \le n \le 10^6$
- $1 \le m \le 10^9$
- $10^8 \le p \le 10^9$,$p$ 是质数
- $0 \le h, a, b, c, f_i < p$
子任务编号 | $n \le$ | $m \le$ | 特殊性质 | 分值 | 依赖的子任务 |
---|---|---|---|---|---|
1 | $1000$ | $1000$ | $p = 998244353$ | 5 | 无 |
2 | $10^5$ | $10^5$ | 24 | 1 | |
3 | $10^6$ | $10^9$ | $b = 0$ | 10 | 无 |
4 | $c = 0$ | 28 | |||
5 | $f_i = 0$ | 30 | |||
6 | 无 | 3 | 1, 2, 3, 4, 5 |
时间限制:$2\texttt{s}$
空间限制:$512\texttt{MB}$