华为 · 模拟 · 算法编程题
华为 模拟 时限 1 秒 / 256 MB

题目描述

实现一个多通道二维卷积。给定输入张量形状、数据、卷积核形状与权重,以及卷积参数 bias/stride/padding/dilation,计算输出并按一行打印,数值保留4位小数(不足补0)。
·
输入张量形状为 c x y,其中 c 为通道数,x 为行数,y 为列数。随后给出 cxy 个实数,按“通道优先,通道内行优先、行内列优先”顺序给出。
·
卷积核形状为 out in k k,其中 out 为输出通道数,in 为输入通道数(应与 c 相等),k 为核的高与宽。
·
卷积权重共 outink*k 个实数,顺序为:先按输出通道 0..out-1,再按输入通道 0..in-1,然后核内按行优先、行内列优先。
·
参数行给出4个整数:bias stride padding dilation。
·
bias 取 0/1。若为 1,紧随其后再给一行 out 个实数,作为各输出通道的偏置;若为 0,则无该行、偏置默认为 0。
·
stride、padding、dilation 为各向同性整数(高宽一致)。
·
计算方式:对每个输出通道 oc、输出位置 (oh, ow),有
out[oc, oh, ow] = Σ_ic Σ_ki Σ_kj input[ic, ih, iw] * weight[oc, ic, ki, kj] + bias[oc]
其中 ih = ohstride + kidilation - padding,iw = owstride + kjdilation - padding;若 ih/iw 越界,则该项忽略(视为0)。
·
输出形状为 out × x_out × y_out,其中
x_out = floor((x + 2padding - dilation(k-1) - 1)/stride + 1)
y_out 同理。最终按“输出通道优先,再行优先、再列优先”一行打印,元素间以空格分隔,均保留4位小数。

输入输出

输入描述
· 第1行:c x y
· 第2行:cxy 个实数(通道优先、行优先、列优先)
· 第3行:out in k k
· 第4行:outink*k 个实数(权重,顺序见上)
· 第5行:bias stride padding dilation
· 若 bias=1:第6行再给 out 个实数(各输出通道的偏置)
输出描述
· 一行实数,按规定顺序展开,保留4位小数

样例共 1 组

样例 1 · 单通道、1×1 卷积核、权重为 2、无偏置,等价于整幅图每个像素乘 2;输出与输入同形状(3×3),按行展开打印。
输入
1 3 3
1 2 3 4 5 6 7 8 9
1 1 1 1
2
0 1 0 1
输出
2.0000 4.0000 6.0000 8.0000 10.0000 12.0000 14.0000 16.0000 18.0000

算法解析依据充分

考点:模拟

限制 1 秒 / 256MB | 标准输入输出

题目画像

  • 源站时限:1 秒(牛客口径,非本题专属门槛)

解题思路

推荐方向:模拟

本题切入点

按定义实现多通道卷积:逐输出通道、逐位置累加 Σ input[ic,ih,iw]×weight[oc,ic,ki,kj],注意 ih/iw 由 stride/dilation/padding 换算且需越界处理。

不涉及复杂算法,把题目描述的流程原样翻译成代码逐步执行即可。

思路框架(模拟 通法 · 非本题专属)

  1. 用变量记录题目要求的「状态」(当前值、剩余数量、当前位置等)。
  2. 按题面给出的顺序,把每一步操作写成一段代码,逐条执行。
  3. 每一步执行后更新状态,并在题目要求的位置输出或累计答案。
  4. 注意循环的边界:执行多少次、何时终止、是否能终止。

实现要点:结构上通常是一个外层循环包住若干 if/else 分支;只要状态定义清楚,正确率很高。

复杂度:时间 O(操作次数) | 空间 O(状态数)

该范式的通法易错点

  • 终止条件写错导致死循环或漏做最后一次操作。
  • 状态更新顺序颠倒(先改了下标又用旧下标)。
  • 题目里「最多 / 恰好 / 至少」的语义差别没区分。

样例解读

样例 1:输入 1 3 3 / 1 2 3 4 5 6 7 8 9 / 1 1 1 1 / 2 / 0 1 0 1 → 输出 2.0000 4.0000 6.0000 8.0000 10.0000 12.0000 14.0000 16.0000 18.0000

单通道、1×1 卷积核、权重为 2、无偏置,等价于整幅图每个像素乘 2;输出与输入同形状(3×3),按行展开打印。

解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。

本题来源:2025年秋招-华为-10月23号留学生AI岗。

‹ 上一题 全部编程题 下一题 ›
编程算法题为只读内容:无需作答,直接看题与解析 · 本站不提供在线判题 · 解析由校招宝本地引擎整理,非官方题解