1. 题目

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

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

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

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

  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) {// 表格的长宽N = sc.nextInt();visited = new int[N][N];int[] res = new int[4];// 起始坐标和终点坐标for (int i = 0; i < 4; i++) {res[i] = sc.nextInt();}int[] start = {res[0], res[1]};int[] end = {res[2], res[3]};System.out.println(knight(start, end));}}public static int knight(int[] start, int[] end) {// 8个方向坐标int[] dx = new int[]{-2, -1, 1, 2, 2, 1, -1, -2};int[] dy = new int[]{1, 2, 2, 1, -1, -2, -2, -1};Queue<int[]> queue = new LinkedList();queue.add(start);while (!queue.isEmpty()) {int[] cur = queue.poll();// 如果当前坐标等于终点坐标, 则直接返回当前坐标的visited值if (cur[0] == end[0] && cur[1] == end[1]) {return visited[cur[0]][cur[1]];}// 沿8个方向分别遍历for (int d = 0; d < 8; d++) {int x = cur[0] + dx[d];int y = cur[1] + dy[d];// 如果当前坐标还未访问过while (x >= 0 && x < N && y >= 0 && y < N && visited[x][y] == 0) {visited[x][y] = visited[cur[0]][cur[1]] + 1;queue.add(new int[]{x, y});}}}return -1;}
    }
    

AcWing1102. 移动骑士相关推荐

  1. 怎么卸载云骑士装机大师

    云骑士装机大师是一款免费的重装系统工具,这款软件内置的系统全都是原装正版系统纯净无添加.软件支持GTP与win10平板,使用非常简单,对于小白用户来说也可以轻松装系统了. 方法步骤 1.首先在PC下载 ...

  2. bzoj 1040: [ZJOI2008]骑士 树形dp

    题目链接 1040: [ZJOI2008]骑士 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 3054  Solved: 1162 [Submit] ...

  3. 最小割 ---- 二分图最大独立集(集合冲突模型) ---- 骑士共存 方格取数(网络流24题)

    二分图独立集 定理: 二分图最大独立集=n - 二分图最大匹配 其实二分图独立集是特殊的一种最大权闭合子图.我们根据上文"收益"的思想,把选某个点的收益看为1,左部节点为正权点,右 ...

  4. 解题报告:X、骑士共存问题(最大独立集)(匈牙利 / 最大流)

    X.骑士共存问题(最大独立集)(匈牙利 / 最大流) 题目链接 [问题分析] 二分图最大独立集,转化为二分图最大匹配,从而用最大流解决. [建模方法] 首先把棋盘黑白染色,使相邻格子颜色不同.把所有可 ...

  5. 骑士卡:基于Kafka搭建消息中心,上亿消息推送轻松完成

    全球购骑士卡是国内领先的会员制特权电商平台,汇聚国内外"吃喝玩乐买"超 300 项会员专属优惠特权.全球购骑士卡基于移动互联生活方式,打通线上.线下消费场景,汇集时下热门.高频的商 ...

  6. 陪伴程序员的一条龙、一骑士 36 岁了!

    整理 | 张洁 责编 | 屠敏 近日,麻省理工学院计算机科学与人工智能实验室@MIT CSAIL发布了一条Twitter,引发无数网友回忆,其表示:"怎么知道自己老了?那就是:'龙书'已经3 ...

  7. 74cms 骑士人才系统v3.5.1 正式版

    骑士cms人才系统是一项基于PHP+MYSQL为核心开发的一套免费 + 开源专业人才网站系统.软件具执行效率高.模板自由切换.后台管理功能方便等诸多优秀特点.全部代码都为骑士网络原创,有着完全的知识产 ...

  8. java编写类骑士游历_java课程设计骑士游历程序的开发

    java课程设计骑士游历程序的开发 JAVA程序设计 课程设计报告 课 题: 骑士游历程序的开发 姓 名: 学 号: 同组姓名: 专业班级: 指导教师: 设计时间: 2013.06.10 评阅意见: ...

  9. 元气骑士机器人修好后怎么用_《元气骑士》五大“难度”挑战,从手速到恶搞很嗨,还能解锁皮肤...

    元气不倒,伴你到老.hello大家好,我是可爱且魅力四射,迷人但不失风度的熊猫. 最近的有小伙伴们给熊猫私信说<元气骑士>地牢当中有一些挑战根本完不成,就是官方过来恶搞的. 小伙伴们给熊猫 ...

最新文章

  1. xcode 允许SVN管理项目文件
  2. python中strip(),lstrip(),rstrip()函数的讲解
  3. ATF里面都有什么?
  4. 程序员广交四海朋友群
  5. Oracle分区技术特性详细解读
  6. 中国铁路官宣:高铁Wi-Fi将融合5G技术
  7. cisco ADSL配置
  8. 人机交互论文计算机导论,计算机导论第10章人机交互[精].ppt
  9. java的null类型强转
  10. 小记tensorflow-1:tf.nn.conv2d 函数介绍
  11. 设置HTML元素的透明度
  12. keepalived mysql 主主_MySQL主主+Keepalived高可用(一):解决单点故障
  13. 零售行业新渠道,效率居然这么高?
  14. 使用List进行分组操作
  15. 以后给孩子起名字不用发愁了
  16. Connection to the other side was lost in a non-clean fashion
  17. css浏览器兼容问题的一些总结(IE6等)
  18. java se 05
  19. CentOs8安装、CentOs8中文拼音输入法安装、Nginx安装配置详解
  20. 【软考】 2019年上半年软件设计师考试上午真题

热门文章

  1. 中国5G套餐用户规模已超5000万!
  2. 小马哥--高仿苹果6 主板型号S106刷机 拆机主板图与开机界面图 多图展示
  3. 大学生高校学生管理信息系统设计与开发(论文文档word、程序设计、数据库文件)
  4. 点击事件 事件委托的情况下实现阻止冒泡
  5. 护理安全警示知识培PPT模板
  6. ubuntu18自带录屏工具
  7. wr885n虚拟服务器设置,tp-link wr885n如何用手机设置
  8. ALI Flutter进阶笔记
  9. linux psutil 监控,psutil:系统监测与进程管理
  10. HTTP学习笔记之三——Proxy代理服务器