UOJ Logo 蜗牛编程训练题库

JZOJ

#282. 青铜莲花池

Statistics
时间限制:1s    空间限制:256MB    输入文件:input.in    输出文件:output.out
当前24小时内您还剩30次提交本题的机会

题目描述

Farmer John为了满足宁智贤对美的享受而安装了人工湖。矩形的人工湖分成M行N列(1 <= M <= 30; 1 <= N <= 30)的方形小格子。有些格子有美丽的荷叶,有些有岩石,剩下的格子有的只是美丽的蓝色湖水。 宁智贤通过从一片荷叶跳到另一片荷叶上来练习芭蕾。它现在正站在一片荷叶上(看输入数据了解具体位置)。它希望通过在荷叶上跳跃来到达另一片荷叶。它既不能跳到水里也不能跳到岩石上。 只有新手才会感到吃惊:宁智贤的跳跃有点类似国际象棋中马那样的移动,在一个方向上(如水平方向)移动M1(1 <= M1 <= 30)“格”,然后再在另一个方向上(如竖直方向)移动M2 (1 <= M2 <= 30; M1 != M2)格,所以宁智贤有时可能有多达8种的跳跃选择。
给出池塘的构造以及宁智贤跳跃的形式,找出宁智贤从一个位置移动到另一个位置所需的最小的跳跃次数。这个跳跃对于所给的测试数据总是可能的。

输入格式

第 1 行: 四个空格分开的整数: M, N, M1, 和 M2

第 2 至 M+1行: 第i+1行用N个空格分开的整数描述池塘第i行,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

输出说明:

机智的宁智贤跳到了(1,3)的荷叶上,再跳到目的地。

数据规模与约定

保证$ 1 \leq M \leq 30,1 \leq N \leq 30 $

时间限制:$1 \text {s}$

空间限制:$256 \text {MB}$

Solutions

标题 发表者 发表日期
None