小红正在手写一个视觉模型中的二维空洞卷积算子。输入是一张单通道特征图和一个 K*K 的卷积核。 计算前,需要先在输入特征图四周填充 padding 层 0。空洞卷积不会真的把卷积核插入 0,而是在访问输入窗口时,按 dilation 的间隔选取元素。 设卷积核大小为 K,膨胀率为 d,则有效卷积核尺寸为: K_eff = K + (K-1)*(d-1) 输出尺寸为: H_out = floor((H + 2*padding - K_eff)/stride) + 1 W_out = floor((W + 2*padding - K_eff)/stride) + 1 请按上述规则计算每个输出位置的乘加结果,并逐行输出最终矩阵。
输入特征图的大小( H 和 W ) 输入特征图的元素,共 H×W 个,且全部为整数 卷积核的大小( K ),为奇数 卷积核的元素,共 K×K 个,且全部为整数 步长( stride )为 ≥1 的整数; 填充( padding )为正整数(仅支持常数 0 填充,输入特征图上下左右各填充 padding 层 0 ); 膨胀率( dilation )为 ≥1 的整数( dilation=1 时等价于普通 2D 卷积)。
逐行返回卷积后的二维特征图
3 3 1 2 3 4 5 6 7 8 9 3 1 0 -1 1 0 -1 1 0 -1 1 0 1
-6
考点:模拟
限制 2 秒 / 256MB | 标准输入输出
推荐方向:模拟
本题切入点
按空洞卷积定义实现:有效核尺寸 K_eff = K+(K−1)(d−1),输出尺寸由 floor 公式给出,访问窗口时按 dilation 间隔取元素(不是真的插零)。
不涉及复杂算法,把题目描述的流程原样翻译成代码逐步执行即可。
思路框架(模拟 通法 · 非本题专属)
实现要点:结构上通常是一个外层循环包住若干 if/else 分支;只要状态定义清楚,正确率很高。
复杂度:时间 O(操作次数) | 空间 O(状态数)
该范式的通法易错点
样例 1
3 3 / 1 2 3 4 5 6 7 8 9 / 3 / 1 0 -1 1 0 -1 1 0 -1 / 1 / 0 / 1-6解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2026年-华为-05月13号AI岗。