D. 房间穿梭

    传统题 文件IO:room 1000ms 256MiB

房间穿梭

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

【题目描述】

有一个星际城市,城市中有 n x m 个房间,它们呈网格状排布。

给你一个大小为 n x m 的二维数组 moveTime ,其中 moveTime[i][j] 表示房间开放的时间,在这个时刻以后你才可以开始往这个房间移动 。你在时刻 t = 0 时从房间 (0, 0) 出发,每次可以移动到 相邻 的一个房间。在 相邻 房间之间移动需要的时间为 1 秒。

请你求出到达房间 (n - 1, m - 1) 所需要的 最少 时间。

如果两个房间有一条公共边(可以是水平的也可以是竖直的),那么我们称这两个房间是相邻的。数据保证moveTime[0][0]=0。

【输入格式】

输入一行输入两个正整数n和m。 接下来输入n行,每行m个非负整数,表示每个房间开放时间。

【输出格式】

输出一行一个整数,表示最早能到达房间 (n - 1, m - 1)的时间。

【数据样例】

【输入数据 1】

2 2
0 4
4 4

【输出数据 1】

6

【输入数据 2】

2 3
0 0 0
0 0 0

【输出数据 2】

3

【说明/提示】

##【样例 1 解释】 在时刻 t = 4 ,从房间 (0, 0) 移动到房间 (1, 0) ,花费 1 秒。 在时刻 t = 5 ,从房间 (1, 0) 移动到房间 (1, 1) ,花费 1 秒。 所以在 t = 6 时到达房间(1, 1),所需时间最少。

##【样例 2 解释】 在时刻 t == 0 ,从房间 (0, 0) 移动到房间 (1, 0) ,花费 1 秒。 在时刻 t == 1 ,从房间 (1, 0) 移动到房间 (1, 1) ,花费 1 秒。 在时刻 t == 2 ,从房间 (1, 1) 移动到房间 (1, 2) ,花费 1 秒。 所以在 t = 3 时到达房间(1, 2),所需时间最少。

【数据范围】

测试点编号 数据范围
1 1≤n,m≤10,1≤moveTime[i][j]≤10
2~5 1≤n,m≤50,1≤moveTime[i][j]≤10^9
6~10 1≤n,m≤1000,1≤moveTime[i][j]≤10^9

2026年编程兔冬令营集训第二场

未参加
状态
已结束
规则
IOI
题目
4
开始于
2026-2-2 9:00
结束于
2026-2-2 13:00
持续时间
4 小时
主持人
参赛人数
6