AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P3707. 亲子游戏

困难通过率 39% · 提交 471 · 通过 182
BFS动态规划矩阵

小慕参加公司组织的寻宝挑战,在一个的格子地图上,小慕和队友抽签决定各自的位置。地图上每个格子有不同数量的积分币,部分格子设有障碍物。 挑战规则是小慕必须在最短的时间(每个单位时间只能走一步)到达队友的位置,沿途经过的格子上的积分币都可以收集,不能走有障碍物的格子,只能上下左右移动。 请问小慕在最短到达队友位置的时间内最多能拿到多少积分币(优先考虑最短时间到达的前提下尽可能多收集积分币)。

提示:带虚线的词点一下有通俗解释。

输入描述

<p> 第一行输入为N(N <= 50),N标识二维矩阵的大小 之后N行,每行有N个值,表格矩阵每个位置的值 </p> <p> 其中: </p> <p> -3:妈妈 </p> <p> -2:宝宝 </p> <p> -1:障碍 </p> <p> >=0:糖果数(0表示没有糖果,但是可以走) </p>

输出描述

输出妈妈在最短到达宝宝位置的时间内最多拿到多少糖果,行末无多余空格

示例

示例 1

输入

4
3 2 1 -3
1 -1 1 1
1 1 -1 2
-2 1 2 3

输出

9

说明:此地图有两条最短路径可到宝宝位置,都是最短路径6步,但先向下再向左可以拿到9个糖果

示例 2

输入

4
3 2 1 -3
-1 -1 1 1
1 1 -1 2
-2 1 -1 3

输出

-1

说明:此地图妈妈无法到达宝宝位置

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
样例1地图与两条最短路径 3 2 1 1 1 1 1 1 2 1 2 3 路径1: 9颗糖 路径2: 8颗糖 图例: 空格 障 = 障碍 妈 = 妈妈 宝 = 宝宝
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「亲子游戏」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。