题目描述
分别给定一个自定义大小的原始矩阵和一个3*3卷积核矩阵(不需要翻转,直接原样求),你所做的就是通过这两个矩阵求出卷积后的输出矩阵。
PS:请使用0来补全原矩阵,(防止python引用框架答题答题)不要使用边缘拷贝的方式
如果你不知道怎么求卷积,这里有一个举例:
给定一个3*3的原始矩阵h
h = [ 1 , 2 , 3]
[ 1 , 1 , 1]
[ 0 , 1 , 2]
给定一个3*3的卷积核v
v = [ 1 , 0 , 1]
[ 2 , 1 , 1]
[ 0 , 0 , 0]
那么卷积运算 h * v = ans ,ans为卷积运算的输出矩阵
对于每一个ans而言有 ans [i,j] = sum( v[a,b]*h[i-a,j-b] )
ans的第一行第一列的结果为: 0*1 + 0*0 + 0*1 + 0*2 + 1*1 + 2*1 + 0*0 + 1*0 + 2*0 = 3
……
ans的第二行第二列的结果为: 1*1 + 2*0 + 3*1 + 1*2 + 1*1 + 1*1 + 0*0 + 1*0 + 2*0 = 8
……
因此,卷积后的输出矩阵为:
ans=[3 , 7 , 7]
[4 , 8 , 5]
[2 , 5 , 5]
输入格式
接下来n行每行m个整型数据表示矩阵的内容
再接下来3行3列分别表述卷积核的矩阵内容
3 <= n,m <= 1000
其余所有输入内容均 小于 10000 且为整数
输出格式
样例输入
4 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 1 0 0 0 -1 -2 -1
样例输出
-16 -24 -28 -23 -24 -32 -32 -24 -24 -32 -32 -24 28 40 44 35