带权网格上的最短路
测试数据来自 system/1700
作业已超过截止时间,您无法递交本题目。
时间限制:1秒 内存限制:256M
【题目描述】
在 \(m\) 行 \(n\) 列的网格上。有些格子是石墩,另一些则是障碍。
一只青蛙准备从左上角跳到右下角的石墩上,每次跳跃可以跳到上下左右相邻的石墩上,但不能跳到障碍物上。
从一个石墩跳到一个石墩上所须时间是由它们的高度决定的,假设从高度为 \(a\) 的石墩跳到高度为 \(b\) 的石墩上,则需要的时间是 \(|a-b|+1\)。
现在请你计算,青蛙跳到右下角的石墩最少需要多少时间。
【输入格式】
第一行:\(m,n\),为网格的大小。
接下来的 \(m\) 行,每行包含 \(n\) 个整数,第 \(i\) 行第 \(j\) 列的整数为0时,则表示该格子为障碍格子, 大于0则表示石墩的高度。
【输出格式】
一个整数,表示最短时间。若不能走到,则输出INF。
【输入输出样例】
Input
5 5
1 2 3 0 2
3 2 0 2 1
1 1 1 1 1
1 0 2 3 1
4 1 0 2 1
Output
10
【数据限制】
\(100\%\) 的数据满足,\(1≤m,n≤100\),\(1≤石墩高度≤1000\)。
【来源】
Mr.he