不带权网格上的最短路
时间限制:1秒 内存限制:256M
【题目描述】
\(m\) 行 \(n\) 列的网格上有一些有障碍物,而另一些则是空格子。
在网格上每一次可以横向跳跃 \(p\) 个格子,然后纵向跳跃 \(q\) 个格子,或纵向跳跃 \(q\)个格子,然后横向跳跃 \(p\)个格子。因此有时可能会有多达 8 个方向选择的跳跃,但不能跳到有障碍物的格子。
现在请你计算青蛙从起始位置跳到目标位置需要的最少跳跃次数。
【输入格式】
第 1 行包含四个用空格隔开的整数: \(m, n, p, q\)。
第 2..\(m+1\) 行: 第 \(i+1\) 行有 \(n\) 个整数,表示该位置的状态: 0 为障碍物格子; 1 为空格子; 2 为另一种障碍物格子;3为开始的位置; 4 为要去的目标位置。
【输出格式】
一个整数,从起始点到要去的位置,最少的跳跃次数。
【输入输出样例】
Input
4 5 1 2
1 0 1 0 1
3 0 2 0 4
0 1 2 0 0
0 0 0 1 0
Output
2
【数据限制】
对于 \(100\%\) 的数据,\(1≤m,n,p,q≤100\)。
【来源】
Mr.he