-
题目
给定一个 n∗nn∗n 的棋盘,以及一个开始位置和终点位置。
棋盘的横纵坐标范围都是 0∼n0∼n。
将一个国际象棋中的骑士放置在开始位置上,请问将它移动至终点位置至少需要走多少步。
一个骑士在棋盘上可行的移动方式如下图所示:
-
输入格式
第一行包含整数 T,表示共有 T 组测试数据。
每组测试数据第一行包含整数 n,表示棋盘大小。
第二行包含两个整数 x,y 用来表示骑士的开始位置坐标 (x,y)。
第三行包含两个整数 x,y 用来表示骑士的终点位置坐标 (x,y)。
-
输出格式
每组数据输出一个整数,表示骑士所需移动的最少步数,每个结果占一行。
-
数据范围
4≤n≤300,
0≤x,y≤n -
输入样例
3 8 0 0 7 0 100 0 0 30 50 10 1 1 1 1
-
输出样例
5 28 0
-
代码
import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Knight { static int N; static int[][] visited; public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 有多少组数据 int size = sc.nextInt(); while (size-- > 0)