【题目描述】

输入n代表有个n×n的棋盘,输入开始位置的坐标和结束位置的坐标,问一个骑士朝棋盘的八个方向走马字步,从开始坐标到结束坐标可以经过多少步。

【输入】

首先输入一个n,表示测试样例的个数。

每个测试样例有三行。

第一行是棋盘的大小L(4≤L≤300);

第二行和第三行分别表示马的起始位置和目标位置(0..L−1)。

【输出】

马移动的最小步数,起始位置和目标位置相同时输出0。

【输入样例】

3
8
0 0
7 0
100
0 0
30 50
10
1 1
1 1

【输出样例】

5
28
0

【源程序】

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstdlib>
#include<queue>
#include<vector>
#define INF 0x3f3f3f3f
#define PI acos(-1.0)
#define N 310
#define MOD 2520
#define E 1e-12
using namespace std;
int n;
char a[N][N];
bool vis[N][N];
int dir[8][2]={{-2,1},{-1,2},{1,2},{2,1},{2,-1},{1,-2},{-1,-2},{-2,-1}};
struct node
{int x;int y;int step;
}q[100000];
void bfs(int sx,int sy,int ex,int ey)
{int head=1,tail=1;memset(vis,0,sizeof(vis));vis[sx][sy]=1;q[tail].x=sx;q[tail].y=sy;q[tail].step=0;tail++;while(head<tail){int x=q[head].x;int y=q[head].y;int step=q[head].step;if(x==ex&&y==ey){printf("%d\n",step);break;}for(int i=0;i<8;i++){int nx=x+dir[i][0];int ny=y+dir[i][1];if(nx>=0&&nx<n&&ny>=0&&ny<n&&vis[nx][ny]==0){vis[nx][ny]=1;q[tail].x=nx;q[tail].y=ny;q[tail].step=step+1;tail++;}}head++;}
}
int main()
{int t;int sx,sy,ex,ey;scanf("%d",&t);while(t--){scanf("%d",&n);scanf("%d%d%d%d",&sx,&sy,&ex,&ey);bfs(sx,sy,ex,ey);}return 0;
}

Knight Moves(信息学奥赛一本通-T1257)相关推荐

  1. Knight Moves(信息学奥赛一本通-T1450)

    [题目描述] 编写一个程序,计算一个骑士从棋盘上的一个格子到另一个格子所需的最小步数.骑士一步可以移动到的位置由下图给出. [输入] 第一行给出骑士的数量 n. 在接下来的 3n 行中,每 3 行描述 ...

  2. 信息学奥赛一本通 (C++)上机练习

    信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...

  3. 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)

    信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法   更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...

  4. 信息学奥赛一本通_长乐一中老师演绎“奥赛传奇”

    董永建(右一)在课堂上. 台海网5月14日讯 据福州晚报报道,长乐一中有一位"传奇"老师--15年来,他辅导的学生在全国高中生信息学奥赛中获金牌3人次.银牌3人次.铜牌5人次:在全 ...

  5. 信息学奥赛一本通 提高篇 第5章 矩阵乘法

    例1 矩阵AXB 信息学奥赛一本通(C++版)在线评测系统 [矩阵乘法]矩阵A×B_Uletay-CSDN博客 矩阵乘法--矩阵A×B_vina的博客-CSDN博客 一本通1641[例 1]矩阵 A× ...

  6. 《信息学奥赛一本通提高篇》第6章 组合数学

    例1 计算系数(NOIP2011提高) 信息学奥赛一本通(C++版)在线评测系统 NOIP2011计算系数_nanhan27的博客-CSDN博客 「NOIP2011」 计算系数 - 组合数_TbYan ...

  7. 《信息学奥赛一本通 提高篇》

    提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1章 贪心算法_青少年趣味编程-CSDN博客 提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1 ...

  8. 信息学奥赛一本通 提高篇 第一部分 基础算法 第2章 二分与三分

    信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分 信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分_mrcrack的博客-CSDN博客_信息学奥赛一本通 ...

  9. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

最新文章

  1. 限时福利:腾讯高级专家手把手教你打造 OCR 神器!
  2. bootstrap 评价页面_文章评论《 HTML5 与 Bootstrap 应用实例 》
  3. Java常用的设计模式总结
  4. docsify-edit-on-github
  5. 腾讯实习笔试:关于几个有序数组求交集的问题
  6. bzoj1532: [POI2005]Kos-Dicing
  7. appinventor广州服务器网页,app inventor服务器
  8. 全网最全教你轻松把vue项目部署到IIS服务器
  9. 拓端tecdat|R语言极值理论EVT:基于GPD模型的火灾损失分布分析
  10. k8s Service
  11. XenApp之高可用篇
  12. office和flash计算机课程,Powerpoint和Flash制作教学课件技巧
  13. 德纳研报丨基于区块链的邮箱Damil已完成种子轮融资,会是下一个ENS吗
  14. 如何获取android手机mac地址,Android手机如何获取Mac地址
  15. Android Studio设置自动换行快捷键
  16. 学习andriod开发之 异步加载图片(二)--- 使用其他进度条
  17. 关于eclipse导入项目后架包找不到问题
  18. 钟南山:越晚“阳”,症状或越轻
  19. 提升项目经理谈话能力的十个实用技巧
  20. c语言中查重,体验CCleaner查重功能,快速找出电脑中的重复文件

热门文章

  1. 数据揭秘中国女性的薪水普遍比男性低,说好的“同工同酬”呢?
  2. 双十一图书大数据:金庸第1,Python第2,学霸们都买了这些书
  3. 电竞+区块链,玩家的4大入局方式
  4. 台湾一公司因停电,让员工手写代码...
  5. Nacos 发布 1.0.0 GA 版本,可大规模投入到生产环境
  6. Ajax技术的一些总结
  7. webrtc在远程助手应用的实践
  8. 开源日志库Logger的使用秘籍
  9. 找单词(母函数问题)
  10. 为了防止程序重排序,慎用volatile