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

P6301. 中庸行者

中等通过率 54% · 提交 354 · 通过 192
DFS回溯枚举

小慕拿到了一张 m × n 的整数地图,中的每个数值代表该位置的地形高度。 小慕可以从地图上的任意一点出发,尝试向上、下、左、右四个相邻的格子移动。 移动时需遵守以下规则: 小慕只能上坡或下坡,不能移动到高度相同的格子。 不允许连续上坡或连续下坡,必须交替进行。 每个格子只能经过一次,不能重复访问。 请计算小慕在这张地图上,能够连续移动的最大次数。

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

输入描述

<p> 第一行两个数字,分别为行数和每行的列数 </p> <p> 后续数据为矩阵地图内容 </p> <p> 矩阵边长范围:[1,8] </p> <p> 地形高度范围:[0,100000] </p>

输出描述

一个整数,代表中庸行者在本地图内,能连续移动的最大次数。

示例

示例 1

输入

2 2
1 2
4 3

输出

3

说明:3->4->1->2,一共移动3次。

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

看不懂题目?点开图解
1 2 4 3 起点:3(下坡) → 4(上坡) → 1(下坡) → 2(结束) 共移动3次 格子中的数字为高度 移动方向(交替上下坡)
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「中庸行者」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。