全新题目


【题目难度 | 中等】※※※


【编程题目 |200分】最小传输时延【2022 Q2考试题】


时间限制:C/C++ 1秒,其他语言 2秒

空间限制:C/C++262144K,其他语言524288K

64bit IO Format:%lld


本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,

编码后请点击”保存并调试“按钮进行代码提交。


题目描述

【最小传输时延】

有M*N的节点矩阵,每个节点可以向8个方向(上、下、左、右及四个斜线方向)转发数据包,每个节点转发时会消耗固定时延,

连续两个相同时延可以减少一个时延值(即当有K个相同时延的节点连续转发时可以减少K- 1个时延值),

求左上角(0,0)开始转发数据包到右下角(M-1,N- 1)并转发出的最短时延。

输入描述

第一行两个数字,M、N,接下来有M行,每行有N个数据,表示M* N的矩阵。

输出描述

最短时延值。

示例1   输入输出示例仅供调试,后台判题数据一般不包含示例

3 3
0 2 2
1 2 1
2 2 1

输出

3

示例2   输入输出示例仅供调试,后台判题数据一般不包含示例

3 3
2 2 2
2 2 2
2 2 2

输出

4

(2 + 2 + 2 -(3-1))


代码实现


C++解法一


#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

const ll dx[8] = {-1, -1, -1, 0, 0, 1, 1, 1};
const ll dy[8] = {-1, 0, 1, -1, 1, -1, 0, 1};

剩余50%内容,订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

C++解法二


#include<bits/stdc++.h> 

using namespace std;

剩余50%内容,订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

Python


剩余50%内容,订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看