AcWing1102. 移动骑士

  1. 题目

    给定一个 n∗nn∗n 的棋盘,以及一个开始位置和终点位置。

    棋盘的横纵坐标范围都是 0∼n0∼n。

    将一个国际象棋中的骑士放置在开始位置上,请问将它移动至终点位置至少需要走多少步。

    一个骑士在棋盘上可行的移动方式如下图所示:

QQ截图20191016061524.png

  1. 输入格式

    第一行包含整数 T,表示共有 T 组测试数据。

    每组测试数据第一行包含整数 n,表示棋盘大小。

    第二行包含两个整数 x,y 用来表示骑士的开始位置坐标 (x,y)。

    第三行包含两个整数 x,y 用来表示骑士的终点位置坐标 (x,y)。

  2. 输出格式

    每组数据输出一个整数,表示骑士所需移动的最少步数,每个结果占一行。

  3. 数据范围

    4≤n≤300,
    0≤x,y≤n

  4. 输入样例

    3
    8
    0 0
    7 0
    100
    0 0
    30 50
    10
    1 1
    1 1
    
  5. 输出样例

    5
    28
    0
    
  6. 代码

    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) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值