2023华为od机试 C++ 【路径步数。】

这篇博客介绍了如何使用C++解决华为OD机试中的一道题目,涉及到小明在地图上行走的问题。地图由数字表示高度,小明每次移动最大能克服k的高度差。博客提供了输入输出描述、示例和解决方案,重点讨论了如何找到小明能达到的最高点及其所需的最少步数。
摘要由CSDN通过智能技术生成

题目

小明喜欢户外运动,这个周末他打算去附近的山区探险,他面前有一张特殊的地图来帮助他找到这片区域的最高点。

这张地图是一个由数字构成的网格。网格中的每一个单元格包含一个数字,代表那个点的高度。其中,数字 0 代表平地,而数字 1 到 9 则代表不同的高度。小明可以向上下左右任何一个方向移动到相邻的单元格中。

然而,小明不是超人,他不能一下子爬得太高或者降得太低。他每次能够爬升或下降的高度差是有限制的,他能够克服的最大高度差是 k。

现在小明站在地图的左上角(0,0 位置),他想知道:

在他的爬升和下降限制下,他能够到达的最高点是多少?
到达那个点需要多少步?

输入描述
第一行包含三个整数,分别是 m、n 和 k。其中 m 和 n 代表地图的行数和列数,k 代表小明可以克服的最大高度差。
接下来的 m 行每行包含 n 个整数,描述了整个地图的高度信息。
输出描述
输出两个整数,分别表示:
小明可以到达的最高点的高度。
到达那个最高点所需要的最少步数。
如果小明无法到达任何一个点,那么输出 0 0。

示例
输入

5 4 1
0 1 2 0
1 0 0 0
1 0 1 2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AlgorithmHero

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值