Knight Moves(信息学奥赛一本通-T1257)
【题目描述】
输入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)相关推荐
- Knight Moves(信息学奥赛一本通-T1450)
[题目描述] 编写一个程序,计算一个骑士从棋盘上的一个格子到另一个格子所需的最小步数.骑士一步可以移动到的位置由下图给出. [输入] 第一行给出骑士的数量 n. 在接下来的 3n 行中,每 3 行描述 ...
- 信息学奥赛一本通 (C++)上机练习
信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...
- 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)
信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法 更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...
- 信息学奥赛一本通_长乐一中老师演绎“奥赛传奇”
董永建(右一)在课堂上. 台海网5月14日讯 据福州晚报报道,长乐一中有一位"传奇"老师--15年来,他辅导的学生在全国高中生信息学奥赛中获金牌3人次.银牌3人次.铜牌5人次:在全 ...
- 信息学奥赛一本通 提高篇 第5章 矩阵乘法
例1 矩阵AXB 信息学奥赛一本通(C++版)在线评测系统 [矩阵乘法]矩阵A×B_Uletay-CSDN博客 矩阵乘法--矩阵A×B_vina的博客-CSDN博客 一本通1641[例 1]矩阵 A× ...
- 《信息学奥赛一本通提高篇》第6章 组合数学
例1 计算系数(NOIP2011提高) 信息学奥赛一本通(C++版)在线评测系统 NOIP2011计算系数_nanhan27的博客-CSDN博客 「NOIP2011」 计算系数 - 组合数_TbYan ...
- 《信息学奥赛一本通 提高篇》
提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1章 贪心算法_青少年趣味编程-CSDN博客 提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1 ...
- 信息学奥赛一本通 提高篇 第一部分 基础算法 第2章 二分与三分
信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分 信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分_mrcrack的博客-CSDN博客_信息学奥赛一本通 ...
- 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题
第1章 快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章 素数 第 3 章 约数 第 4 章 同余问题 第 5 章 矩阵乘法 第 6 章 ...
最新文章
- 限时福利:腾讯高级专家手把手教你打造 OCR 神器!
- bootstrap 评价页面_文章评论《 HTML5 与 Bootstrap 应用实例 》
- Java常用的设计模式总结
- docsify-edit-on-github
- 腾讯实习笔试:关于几个有序数组求交集的问题
- bzoj1532: [POI2005]Kos-Dicing
- appinventor广州服务器网页,app inventor服务器
- 全网最全教你轻松把vue项目部署到IIS服务器
- 拓端tecdat|R语言极值理论EVT:基于GPD模型的火灾损失分布分析
- k8s Service
- XenApp之高可用篇
- office和flash计算机课程,Powerpoint和Flash制作教学课件技巧
- 德纳研报丨基于区块链的邮箱Damil已完成种子轮融资,会是下一个ENS吗
- 如何获取android手机mac地址,Android手机如何获取Mac地址
- Android Studio设置自动换行快捷键
- 学习andriod开发之 异步加载图片(二)--- 使用其他进度条
- 关于eclipse导入项目后架包找不到问题
- 钟南山:越晚“阳”,症状或越轻
- 提升项目经理谈话能力的十个实用技巧
- c语言中查重,体验CCleaner查重功能,快速找出电脑中的重复文件