题目描述
有M*N的节点矩阵,每个节点可以向8个方向(上、下、左、右及四个斜线方向)转发数据包,每个节点转发时会消耗固定时延,连续两个相同时延可以减少一个时延值(即当有K个相同时延的节点连续转发时可以减少K-
1个时延值),求左上角(0,0)开始转发数据包到右下角(M-1,N- 1)并转发出的最短时延。
输入描述
第一行两个数字,M、N,接下来有M行,每行有N个数据,表示M* N的矩阵。
输出描述
最短时延值
ACM输入输出模式
如果你经常使用Leetcode,会知道letcode是不需要编写输入输出函数的。但是华为OD机考使用的是 ACM 模式,需要手动编写输入和输出。
所以最好在牛-客上提前熟悉这种模式。例如C++使用cin/cout
,python使用input()/print()
。JavaScript使用node的readline()
和console.log()
。Java 使用sacnner/system.out.print()
用例
输入 | 3 3 0 2 2 1 2 1 2 2 1 |
输出 | 3 |
说明 | 无 |
输入 | 3 3 2 2 2 2 2 2 2 2 2 |
输出 | 4 |
说明 | (2 + 2 + 2 -(3-1)) |
机考代码查重
华为OD机考完成之后,官方会进行代码查重。华为 od 机考确实有很大的概率抽到原题。如果碰到了题库中的原题,一定不要直接使用题解中的代码,尤其是变量名,一定要修改,可以改成毫无意义的单词。除了变量名之外,代码的组织