在线机考|2024华为实习&秋招&春招编程题(最新)——第3题_PCB印刷电路板布线_300分(八)

题目内容

在PCB印刷电路板设计中,器件之间的连线需要避免线路的阻抗值增大、而且赛件之间还有别的器件和别的干扰源,在布线时我们希望受到的干扰尽量小。现将电路板简化成一个M×N的矩阵,每个位置(单元格)的值表示其源干扰度。

如果单元格的值为0,表示此位置没有干扰源;如果单元格的值为非0,则表示此位置是干扰源,其值为源干扰度。连线经过干扰源或干扰源附近会增加连线的总干扰度。位置A[x, y]的干扰源的源干扰度为d(d>0),则连线的干扰度计算如下:

1、若连线经过位置A[x, y],则其总干扰度会增加d;

2、若连线经过离位置A[x, y]距离小于d的位置时,设其距离为K,则总干扰度会增加(d-k);

3、若连线经过离位置A[x,y]距离大于或等于d的位置时,总干扰度不会增加;

位置[x1,y1]和位置[x2,y2]之间距离的定义为:|x1-x2|+|y1-y2|

输入描述

第一行是两个整数M和N(M和N的最大值是1000),表示行数和列数;

接着是M行的数据,每一行包含N个整数,代表每个位置的源干扰度,每个源干扰度小于

输出描述

左上角[0,0]到右下角[M-1,N-1]连线的最小总干扰度。

样例

输入:

3 3
0 0 0
0 2 0
0 0 0
输出:

2

题目解析

1、干扰度累加:

  • 对于每个干扰源位置(i,j),其干扰度范围是由该位置的干扰度d决定的。它的影响不仅局限于 (i, j)本身,还会扩展到该位置周围的其他位置,影响范围由 d决定。
  • 计算每个位置的干扰度时,我们需要根据其到干扰源的距离来判断是否增加干扰度。