欢迎光临散文网 会员登陆 & 注册

华为OD机试 - 计算网络信号(Python)

2023-03-02 18:22 作者:发量迷人的乔喻  | 我要投稿

计算网络信号

题目

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


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


array[m][n] 的二维数组代表网格地图,

array[i][j] = 0 代表 i 行 j 列是空旷位置;

array[i][j] = x ( x 为正整数)代表 i 行 j 列是信号源,信号强度是 x;

array[i][j] = -1 代表 i 行 j 列是阻隔物.

信号源只有 1 个,阻隔物可能有 0 个或 多 个

网络信号衰减是上下左右相邻的网格衰减 1

现要求输出对应位置的网络信号值。

输入

输入为三行,第一行为 m mm、n nn,代表输入是一个 m × n m×nm×n 的数组。

第二行是一串 m × n m×nm×n 如个用空格分隔的整数。

每连续 n nn 个数代表一行,再往后 n nn 个代表下一行,以此类推。

对应的值代表对应的网格是空矿位置,还是信号源,还是阻隔物。

第三行是 i ii 、j jj,代表需要计算 array[i][j] 的网络信号值。

注意:此处 i ii 和 j jj 均从 0 开始,即第一行 i ii 为 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

2

3

代表如下地图


需要输出第 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

1

2

3

输出

2

1

说明

示例二

输入

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

1

2

3

输出

0

1

备注

m mm 不一定等于 n nn ,m mm<100,n nn<100 ,网络信号之小于 1000 。

信号源只有 1 个,阻隔物可能有 0 个或多个。

输入的 m mm ,n nn 与第二行的数组是合法的,无需处理数量对不上的异常情况。

要求输出信号值的位置,不会是阻隔物。

————————————————

版权声明:本文为CSDN博主「梦想橡皮擦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/hihell/article/details/128985593


华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单

https://dream.blog.csdn.net/article/details/128980730

华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典

https://dream.blog.csdn.net/article/details/129221789

【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)

https://blog.csdn.net/hihell/article/details/129111620

华为od机试,独家整理 已参加机试人员的实战技巧

https://dream.blog.csdn.net/article/details/129270511


华为OD机试 - 计算网络信号(Python)的评论 (共 条)

分享到微博请遵守国家法律