在一幅高为 H、宽为 W 的灰度图中,每个像素都有一个实数信号值。给定一个 K×K 的策略矩阵(K 为奇数),我们先依据该矩阵为整幅图计算“能量图” E;随后,从图像的第 1 列任意行作为起点,每一列向右选择一个格子,且列与列之间的移动仅允许三种:右、右上或右下,直到走到第 W 列。请你选择一条合规路径,使路径上对应能量之和最大,并输出该最大值。 · 能量图计算规则(零填充相关):记 r = K//2 E[i][j] = Σu=0..K-1 Σv=0..K-1 P[u][v] · I[i+u−r][j+v−r] 若 i+u−r 或 j+v−r 越界,则视为该项贡献为 0。 · 路径规则:起点为第 1 列任意行;从 (i, j) 到下一列可走到 (i, j+1)、(i−1, j+1) 或 (i+1, j+1),越界无效。 · 输出:最大能量和,保留 1 位小数。
· 第一行:H W K · 接下来 H 行:每行 W 个浮点数,表示图像 I · 接下来 K 行:每行 K 个浮点数,表示策略矩阵 P
一行一个浮点数:最大能量和(四舍五入保留 1 位小数)
2 2 1 1 2 3 4 2
14.0
考点:动态规划
限制 1 秒 / 256MB | 标准输入输出
推荐方向:动态规划
本题切入点
先按公式算能量图(零填充的相关运算),再在能量图上做「每列向右/右上/右下」的最大路径和 DP,逐列转移取 max。
把问题拆成子问题,用状态表示「已处理到哪儿」,靠转移方程递推。
思路框架(动态规划 通法 · 非本题专属)
实现要点:一般是「先枚举阶段,再枚举状态,最后枚举决策」三层循环;空间大时可滚动数组优化。
复杂度:时间 O(状态数 × 转移代价) | 空间 O(状态数)
该范式的通法易错点
样例 1:输入 2 2 1 / 1 2 / 3 4 / 2 → 输出 14.0
K=1 且 P=[2],能量图即 E=2·I=[[2,4],[6,8]]。从第 1 列到第 2 列的最优路径为 (2,1)→(2,2),能量和 6+8=14.0。
解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2025年秋招-华为-10月22号AI岗。