AcWing1102. 移动骑士
题目
给定一个 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) {// 表格的长宽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. 移动骑士相关推荐
- 怎么卸载云骑士装机大师
云骑士装机大师是一款免费的重装系统工具,这款软件内置的系统全都是原装正版系统纯净无添加.软件支持GTP与win10平板,使用非常简单,对于小白用户来说也可以轻松装系统了. 方法步骤 1.首先在PC下载 ...
- bzoj 1040: [ZJOI2008]骑士 树形dp
题目链接 1040: [ZJOI2008]骑士 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3054 Solved: 1162 [Submit] ...
- 最小割 ---- 二分图最大独立集(集合冲突模型) ---- 骑士共存 方格取数(网络流24题)
二分图独立集 定理: 二分图最大独立集=n - 二分图最大匹配 其实二分图独立集是特殊的一种最大权闭合子图.我们根据上文"收益"的思想,把选某个点的收益看为1,左部节点为正权点,右 ...
- 解题报告:X、骑士共存问题(最大独立集)(匈牙利 / 最大流)
X.骑士共存问题(最大独立集)(匈牙利 / 最大流) 题目链接 [问题分析] 二分图最大独立集,转化为二分图最大匹配,从而用最大流解决. [建模方法] 首先把棋盘黑白染色,使相邻格子颜色不同.把所有可 ...
- 骑士卡:基于Kafka搭建消息中心,上亿消息推送轻松完成
全球购骑士卡是国内领先的会员制特权电商平台,汇聚国内外"吃喝玩乐买"超 300 项会员专属优惠特权.全球购骑士卡基于移动互联生活方式,打通线上.线下消费场景,汇集时下热门.高频的商 ...
- 陪伴程序员的一条龙、一骑士 36 岁了!
整理 | 张洁 责编 | 屠敏 近日,麻省理工学院计算机科学与人工智能实验室@MIT CSAIL发布了一条Twitter,引发无数网友回忆,其表示:"怎么知道自己老了?那就是:'龙书'已经3 ...
- 74cms 骑士人才系统v3.5.1 正式版
骑士cms人才系统是一项基于PHP+MYSQL为核心开发的一套免费 + 开源专业人才网站系统.软件具执行效率高.模板自由切换.后台管理功能方便等诸多优秀特点.全部代码都为骑士网络原创,有着完全的知识产 ...
- java编写类骑士游历_java课程设计骑士游历程序的开发
java课程设计骑士游历程序的开发 JAVA程序设计 课程设计报告 课 题: 骑士游历程序的开发 姓 名: 学 号: 同组姓名: 专业班级: 指导教师: 设计时间: 2013.06.10 评阅意见: ...
- 元气骑士机器人修好后怎么用_《元气骑士》五大“难度”挑战,从手速到恶搞很嗨,还能解锁皮肤...
元气不倒,伴你到老.hello大家好,我是可爱且魅力四射,迷人但不失风度的熊猫. 最近的有小伙伴们给熊猫私信说<元气骑士>地牢当中有一些挑战根本完不成,就是官方过来恶搞的. 小伙伴们给熊猫 ...
最新文章
- xcode 允许SVN管理项目文件
- python中strip(),lstrip(),rstrip()函数的讲解
- ATF里面都有什么?
- 程序员广交四海朋友群
- Oracle分区技术特性详细解读
- 中国铁路官宣:高铁Wi-Fi将融合5G技术
- cisco ADSL配置
- 人机交互论文计算机导论,计算机导论第10章人机交互[精].ppt
- java的null类型强转
- 小记tensorflow-1:tf.nn.conv2d 函数介绍
- 设置HTML元素的透明度
- keepalived mysql 主主_MySQL主主+Keepalived高可用(一):解决单点故障
- 零售行业新渠道,效率居然这么高?
- 使用List进行分组操作
- 以后给孩子起名字不用发愁了
- Connection to the other side was lost in a non-clean fashion
- css浏览器兼容问题的一些总结(IE6等)
- java se 05
- CentOs8安装、CentOs8中文拼音输入法安装、Nginx安装配置详解
- 【软考】 2019年上半年软件设计师考试上午真题