【每日一题 2023-2-19】华为OD机试真题 计算网络信号(Python)

梦想橡皮擦
Python领域优质创作者
博客专家认证
2023-02-19 10:29:28

计算网络信号

题目

网络信号经过传递会逐层衰减,且遇到阻隔物无法直接穿透,在此情况下需要计算某个位置的网络信号值。

注意:网络信号可以绕过阻隔物

  • array[m][n] 的二维数组代表网格地图,
  • array[i][j] = 0 代表 ij 列是空旷位置;
  • array[i][j] = x ( x 为正整数)代表 ij 列是信号源,信号强度是 x;
  • array[i][j] = -1 代表 ij 列是阻隔物.
  • 信号源只有 1 个,阻隔物可能有 0 个或
  • 网络信号衰减是上下左右相邻的网格衰减 1
  • 现要求输出对应位置的网络信号值。

输入

输入为三行,第一行为 $m$、$n$,代表输入是一个 $m×n$ 的数组。
第二行是一串 $m×n$ 如个用空格分隔的整数。
每连续 $n$ 个数代表一行,再往后 $n$ 个代表下一行,以此类推。
对应的值代表对应的网格是空矿位置,还是信号源,还是阻隔物。
第三行是 $i$ 、$j$,代表需要计算 array[i][j] 的网络信号值。
注意:此处 $i$ 和 $j$ 均从 0 开始,即第一行 $i$ 为 0

例如

6 5
0 0 0 -1 0 0 0 0 0 0 0 0 -1 4 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0
1 4

代表如下地图

在这里插入图片描述

需要输出第 1 行第 4 列的网络信号值,如下图,值为 2

在这里插入图片描述

输出

输出对应位置的网络信号值,如果网络信号未覆盖到,也输出 0。

一个网格如果可以途径不同的传播衰减路径传达,取较大的值作为其信号值。

示例一

输入

6 5
0 0 0 -1 0 0 0 0 0 0 0 0 -1 4 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0
1 4

输出

2

说明

示例二

输入

6 5
0 0 0 -1 0 0 0 0 0 0 0 0 -1 4 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0
2 1

输出

0

备注

  1. $m$ 不一定等于 $n$ ,$m$<100,$n$<100 ,网络信号之小于 1000 。
  2. 信号源只有 1 个,阻隔物可能有 0 个或多个。
  3. 输入的 $m$ ,$n$ 与第二行的数组是合法的,无需处理数量对不上的异常情况。
  4. 要求输出信号值的位置,不会是阻隔物。
...全文
172 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

7

社区成员

发帖
与我相关
我的任务
社区描述
这里有华为od机试真题 这里有各个语言的解题技巧 这里有od岗位推荐 来吧
华为职场和发展面试 其他 北京·朝阳区
社区管理员
  • 梦想橡皮擦
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧