keillempkill学姐の卷积
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

计算机视觉是一个非常有趣且充满挑战的领域。特别是卷积神经网络(CNN),这种网络在图像识别和处理方面展示了惊人的效果。\mathtt{keillempkill} 学姐意识到,要深入理解CNN,就必须从其最基本的组成部分------卷积操作开始。卷积操作本质上是一个元素乘积和的过程,卷积核在图像上滑动并在每个位置执行这种运算。

给定一个 n \times n 的卷积核和一个 m \times m 的矩阵。你的任务是使用卷积核对图像矩阵进行卷积操作。卷积操作是指,将卷积核覆盖到矩阵的对应部分,并将卷积核下的元素与矩阵对应位置的元素相乘,然后将所有乘积相加,得到结果矩阵的一个元素。卷积核会在整个矩阵上移动,直到覆盖矩阵的每一个可以容纳卷积核的部分。

例如:

输入描述:

第一行包含两个整数 nm,(1 \le n \le m \le 20)
接下来 n 行,每行 n 个整数 a_{i,j} (0 \le a_{i,j} \le 20) ,表示卷积核。
接下来 m 行,每行 m 个整数 b_{i,j} (0 \le b_{i,j} \le 20) ,表示需要进行卷积的矩阵。

输出描述:

输出一个 (m-n+1) \times (m-n+1) 的矩阵,表示卷积操作的结果。
示例1

输入

复制
2 3
0 1
2 3
1 2 3
4 5 6
7 8 9

输出

复制
25 31
43 49
示例2

输入

复制
2 4
0 1
2 3
1 2 3 4
5 6 7 8
9 10 11 12
12 14 15 16

输出

复制
30 36 42
54 60 66
76 84 90