T618283 [语言月赛 202506] 卷积画图
题目描述
给定一张 $n \times m$ 的画布(每个格子里有一个数字),以及一个 $k \times k$ 的“模板”。我们要把这个模板放在画布的左上角,然后一点一点向右、向下移动。每次移动的时候,把模板里的数字和画布上对应的数字相乘,然后加起来,得到一个新数字。这样,我们就会得到一张新的、稍小的画布。这个过程叫“卷积”。
例如,假设我们有这样一张 $3 \times 3$ 的画布:
$$
\begin{bmatrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9
\end{bmatrix},
$$
及这样一张 $2 \times 2$ 的模板:
$$
\begin{bmatrix}
3 & 2\\
1 & 5 \\
\end{bmatrix},
$$
执行“卷积”后,我们可以得到以下结果:
$$
\begin{bmatrix}
a & b \\
c & d \\
\end{bmatrix}
=
\begin{bmatrix}
36 & 47 \\
69 & 80 \\
\end{bmatrix}
,
$$
其中:
| 结果变量 | 对应画布位置 | 模板 | 结果 |
| :-: | :-: | :-: | :-: |
| $a$ | $\begin{bmatrix} \color{red}{1} & \color{orange}{2} & 3 \\ \color{green}{4} & \color{blue}{5} & 6 \\ 7 & 8 & 9 \end{bmatrix}$ | $\begin{bmatrix} \color{red}{3} & \color{orange}{2} \\ \color{green}{1} & \color{blue}{5} \end{bmatrix}$ | ${\color{red}{1}} \times {\color{red}{3}} + {\color{orange}{2}} \times {\color{orange}{2}} + {\color{green}{4}} \times {\color{green}{1}} + {\color{blue}{5}} \times {\color{blue}{5}} = 36$ |
| $b$ | $\begin{bmatrix} 1 & \color{red}{2} & \color{orange}{3} \\ 4 & \color{green}{5} & \color{blue}{6} \\ 7 & 8 & 9 \end{bmatrix}$ | $\begin{bmatrix} \color{red}{3} & \color{orange}{2} \\ \color{green}{1} & \color{blue}{5} \end{bmatrix}$ | ${\color{red}{2}} \times {\color{red}{3}} + {\color{orange}{3}} \times {\color{orange}{2}} + {\color{green}{5}} \times {\color{green}{1}} + {\color{blue}{6}} \times {\color{blue}{5}} = 47$ |
| $c$ | $\begin{bmatrix} 1 & 2 & 3 \\ \color{red}{4} & \color{orange}{5} & 6 \\ \color{green}{7} & \color{blue}{8} & 9 \end{bmatrix}$ | $\begin{bmatrix} \color{red}{3} & \color{orange}{2} \\ \color{green}{1} & \color{blue}{5} \end{bmatrix}$ | ${\color{red}{4}} \times {\color{red}{3}} + {\color{orange}{5}} \times {\color{orange}{2}} + {\color{green}{7}} \times {\color{green}{1}} + {\color{blue}{8}} \times {\color{blue}{5}} = 69$ |
| $d$ | $\begin{bmatrix} 1 & 2 & 3 \\ 4 & \color{red}{5} & \color{orange}{6} \\ 7 & \color{green}{8} & \color{blue}{9} \end{bmatrix}$ | $\begin{bmatrix} \color{red}{3} & \color{orange}{2} \\ \color{green}{1} & \color{blue}{5} \end{bmatrix}$ | ${\color{red}{5}} \times {\color{red}{3}} + {\color{orange}{6}} \times {\color{orange}{2}} + {\color{green}{8}} \times {\color{green}{1}} + {\color{blue}{9}} \times {\color{blue}{5}} = 80$ |
现在给定画布和模板,请你算出卷积之后的画布内容。
输入格式
输入共 $n + k + 1$ 行。
第一行三个整数 $n, m, k$,分别表示画布的大小和模板的大小;
接下来 $n$ 行,每行 $m$ 个整数,表示原始画布;
接下来 $k$ 行,每行 $k$ 个整数,表示模板内容。
输出格式
输出 $n - k + 1$ 行,每行 $m - k + 1$ 个整数,代表一张大小为 $(n - k + 1) \times (m - k + 1)$ 的卷积结果。
说明/提示
### 数据规模与约定
本题共 $10$ 个测试点。对于 $100\%$ 的测试数据,$1 \le n, m, k \le 100$,$k \leq \min(n, m)$,所有输入数据中的整数都在 $1$ 到 $10^7$ 之间。
| 测试点编号 | $n, m$ | $k$ | 特殊性质 |
| :----------: | :----------: | :----------: | :-: |
| $1, 2$ | $\leq 10$ | $\leq 10$ | 无 |
| $3$ | $\leq 100$ | $= 1$ | 无 |
| $4, 5$ | $\leq 100$ | $\leq 100$ | $k = m$ |
| $6, 7$ | $\leq 100$ | $\leq 100$ | “模板”内的整数全为 $1$ |
| $8 \sim 10$ | $\leq 100$ | $\leq 100$ | 无 |