【 华为OD机试 2023】信号发射和接收(C++ Java JavaScript Python)

题目描述

有一个二维的天线矩阵,每根天线可以向其他天线发射信号,也能接收其他天线的信号,为了简化起见,我们约定每根天线只能向东和向南发射信号,换言之,每根天线只能接收东向或南向的信号。

每根天线有自己的高度anth,每根天线的高度存储在一个二维数组中,各个天线的位置用[r, c]表示,r代表天线的行位置(从0开始编号),c代表天线的列位置(从0开始编号)。

在某一方向(东向或南向),某根天线可以收到多根其他天线的信号(也可能收不到任何其他天线的信号),对任一天线X和天线Y,天线X能接收到天线Y的条件是:

  1. 天线X在天线Y的东边或南边
  2. 天线X和天线Y之间的其他天线的高度都低于天线X和天线Y,或天线X和天线Y之间无其他天线,即无遮挡。

如下图示意:

在天线矩阵的第0行上:

  • 天线[0, 0]接收不到任何其他天线的信号,
  • 天线[0, 1]可以接收到天线[0, 0]的信号,
  • 天线[0, 2]可以接收到天线[0, 1]的信号,
  • 天线[0, 3]可以接收到天线[0, 1]和天线[0, 2]的信号,
  • 天线[0, 4]可以接收到天线[0, 3]的信号,
  • 天线[0, 5]可以接收到天线[0, 4]的信号;

在天线的第0列上:

  • 天线[0, 0]接收不到任何其他天线的信号,
  • 天线[1, 0]可以接收到天线[0, 0]的信号,
  • 天线[2, 0]可以接收到天线[1, 0]的信号,
  • 天线[3, 0]可以接收到天线[1, 0]和天线[2, 0]的信号,
  • 天线[4, 0]可以接收到天线[3, 0]的信号,
  • 天线[5, 0]可以接收到天线[3, 0]和天线[4, 0]的信号;

给一个m行n列的矩阵(二维数组),矩阵存储各根天线的高度,求出每根天线可以接收到多少根其他天线的信号,结果输出到m行n列的矩阵(二维矩阵)中。

输入描述

输入为1个m行n列的矩阵(二维矩阵)anth[m][n],矩阵存储各根天线的高度,高度值anth[r]][c]为大于0的整数。

第一行为输入矩阵的行数和列数,如:

m n

第二行为输入矩阵的元素值,按行输入,如:

anth[0][0] anth[0][1] … anth[0][n-1] anth[1][0] anth[1][1] … anth[1][n-1] … anth[m-1][0] … anth[m-1][n-1]

输出描述

输出一个m行n列的矩阵(二维数组)ret[m][n],矩阵存储每根天线能收到多少根其他天线的信号,根数为ret[r][c]。

第一行为输出矩阵的行数和列数,如:

m n

第二行为输出矩阵的元素值,按行输出,如:

ret[0][0] ret[0][1] … ret[0][n-1] ret[1][0] ret[1][1] … ret[1][n-1] … ret[m-1][0] … ret[m-1][n-1]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值