首页 > 试题广场 >

简单卷积

[编程题]简单卷积
  • 热度指数:173 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小森最近在工作上遇到了一些麻烦,他需要在许多矩阵上计算卷积的结果,希望你能够帮助他写一个程序简化计算。

小森已经将他要计算的卷积处理成了如下的简化形式,以便即使不了解卷积的人也可以进行计算:
给出一个n*m的矩阵A和一个3*3的矩阵B,A和B的计算结果是一个(n-2)*(m-2)的矩阵C,满足:


请按照以上公式,根据给出的矩阵A和B计算出矩阵C。

输入描述:
输入的第一行为两个正整数n和m,其中3 <= n, m <= 500。
接下来的n行,每行包含m个用空格分隔的整数,其中第x行第y列的整数为,且
接下来的3行,每行包含3个用空格分隔的整数,其中第x行第y列的整数为,且


输出描述:
输出包含n-2行,每行包含m-2个用空格分隔的整数,其中第x行第y列的整数为
示例1

输入

4 4
1 2 3 4
5 4 3 2
-1 -2 -3 -4
-5 -4 -3 -2
1 0 -1
0 -1 1
-1 0 1

输出

-5 -5
3 3

说明

以输出样例中左上角的-5为例:

(1 * 1) + (2 * 0) + (3 * (-1)) + (5 * 0) + (4 * (-1)) + (3 * 1) + ((-1) * (-1)) + ((-2) * 0) + ((-3) * 1) = 1 + 0 + (-3) + 0 + (-4) + 3 + 1 + 0 + (-3) = -5