通过率 66% · 提交 450 · 通过 296
小慕正在开发一个寻宝机器人项目,地图被划分为 m 行和 n 列的方格,横纵坐标范围分别是 [0, n-1] 和 [0, m-1]。 在不大于 k 的方格中埋有黄金(每个方格中仅有一克黄金),但横坐标和纵坐标数位之和大于 k 的方格存在危险,机器人不可进入。 小慕从入口 (0,0) 开始控制机器人,任何时候只能向左、右、上、下四个方向移动一格。 请问小慕的机器人最多能收集到多少克黄金?
这类题属于华为 OD 机考真题方向中「100分 / 数学」方向的高频题型,通常考察对「100分 / 数学」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
坐标取值范围如下: 0 ≤ m ≤ 50,0 ≤ n ≤ 50
k 的取值范围如下: 0 ≤ k ≤ 100
输入中包含 3 个字数,分别是 m, n, k
输出小华最多能获得多少克黄金
示例 1
输入示例
40 40 18
输出示例
1484
示例 2
输入示例
5 4 7
输出示例
20
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
相关图解步骤
先看指定步骤补关键知识点,再回到本题完成标准输入输出。
本题的重点在于理解数位和的概念。 所谓数位和,指的是一个正整数的各个位的和。比如 11 的数位和是 1 + 1 = 2。
对于任意一个正整数 n,其数位和可以通过以下两种方式任选其一进行计算。在效率上,数学方法略优于字符串方法,但因为数据量不大,所以都可以使用。
在拿到地图的大小 n * m 之后,就可以通过双重循环遍历的方式,构建出每一个位置的数位和矩阵 grid。
拿到数位和矩阵 grid 之后,由于小华从起点出发上下左右均可以移动,所以问题就转化为了从起点 `(0, 0)` 开始进行图的遍历能够到达多大面积的地图。类似 经典题型、岛屿的最大面积。
这个问题用 DFS 或 BFS 都可以完成,直接套模板即可。
复杂度分析 设地图为 m 行 n 列,坐标的十进制位数为 d(坐标最大不超过几万量级,d 很小,可视作常数)。
注意本题只需从 (0, 0) 出发做一次搜索、统计可达格子数即可,不必像「岛屿的最大面积」那样枚举所有起点,所以代码里 dfs 只在 main 中被调用一次,主要开销反而在预构建数位和矩阵上。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
时间限制 1000 ms · 内存限制 128 MB
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有