题目描述宝宝和妈妈参加亲子游戏,在一个 N*N 的格子地图上,宝宝和妈妈抽签决定各自的位置,地图上每个格子有不同的糖果数量,部分格子有障碍物。游戏规则是妈妈必须在最短的时间(每个单位时间只能走一步)到达宝宝的位置,路上的所有糖果都可以拿走,不能走障碍物的格子,只能上下左右走。请问妈妈在最短到达宝宝位置的时间内最多拿到多少糖果(优先保证最短时间到达,再尽可能多拿糖果)。输入描述:第一行输入 N,表示二维矩阵的大小。之后 N 行,每行 N 个值,表示矩阵每个位置的值。其中 -3 表示妈妈,-2 表示宝宝,-1 表示障碍,=0 表示糖果数(0 表示没有糖果但可以走)。输出描述:妈妈在最短到达宝宝位置的时间内最多拿到多少糖果,行末无多余空格。补充说明:地图最大 50*50。示例 1输入:4 3 2 1 -3 1 -1 1 1 1 1 -1 2 -2 1 2 3输出:9讲个故事:妈妈抢糖果救娃妈妈和宝宝被扔进一个糖果迷宫,宝宝在某个格子哭着等,妈妈得赶紧过去。但路上有糖果,妈妈一边赶路一边顺走糖果。规矩是先求快,再求多:必须走最短的路过去,在最短的路里挑一条拿糖果最多的。障碍格踩不了,只能上下左右走。说白了就是 BFS 找最短距离,再在最短路径里抠出最大糖果和。核心原理:BFS 分层加最大糖果维护
郑州网站建设
网页设计
企业官网