1257:Knight Moves

时间限制: 1000 ms         内存限制: 65536 KB
提交数: 6149     通过数: 3100

【题目描述】

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

【输入】

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

每个测试样例有三行。

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

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

【输出】

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

【输入样例】

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

【输出样例】

5
28
0

【分析】

马走日,8个方向,方向数组(1,2),(1,-2),(-1,2),(-1,-2),(2,1),(2,-1),(-2,1),(-2,-1)。

【参考代码】

#include<iostream>
#include<queue>
#include<cstring>using namespace std;const int N=310;struct node
{int x,y;int t;
};int sx,sy;     //起点坐标
int ex,ey;     //终点坐标
int l;         //棋盘大小 int dx[]={1,1,-1,-1,2,2,-2,-2};    //方向数组
int dy[]={2,-2,2,-2,1,-1,1,-1};bool vis[N][N];  //访问数组 void bfs()
{queue <node> q;      //申请队列 node st;st.x=sx;st.y=sy;st.t=0;q.push(st);          //起点入队 while(!q.empty()){node nt=q.front();if(nt.x==ex && nt.y==ey){cout<<nt.t<<endl;break;}for(int i=0;i<8;i++){int nx=nt.x+dx[i];int ny=nt.y+dy[i];if(vis[nx][ny]==false && nx>=0 && nx<l && ny>=0 && ny<l){vis[nx][ny]=true;node tmp;tmp.x=nx;tmp.y=ny;tmp.t=nt.t+1;q.push(tmp);}}q.pop();}return;
}
int main()
{int t;cin>>t;while(t--){memset(vis,false,sizeof(vis));cin>>l;cin>>sx>>sy>>ex>>ey;vis[sx][sy]=true;bfs();}
}

http://ybt.ssoier.cn:8088/problem_show.php?pid=1257

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

  1. 信息学奥赛一本通 1257:Knight Moves | OpenJudge NOI 2.5 917:Knight Moves

    [题目链接] ybt 1257:Knight Moves OpenJudge NOI 2.5 917:Knight Moves [题目考点] 1. 广搜 迷宫问题 [解题思路] 广搜,迷宫问题. 不同 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 使用rel=noopener
  2. linux上传github项目
  3. 转载:理解机器学习中的偏差与方差
  4. C++Builder 2010深入TApplication类之属性
  5. 使用 C# 下载文件的十八般武艺
  6. 比萨问题–建造者与装饰者
  7. hdu1596-find the safest road
  8. 【Unity3D日常开发】Unity3D中 C#反射Reflection的使用
  9. python题目-判断素数
  10. 与非门如何变成非门,与门,异或门
  11. LXDE桌面系统设置快捷键
  12. Ios常用第三方动画框架(三)
  13. linux获取系统信息(sysinfo函数的使用)
  14. 使用javascript制作 滚动字幕及时钟
  15. FCPX自定义分屏字幕插件:Stupid Raisins Split Pop效果展示
  16. react+antd修改主题色
  17. 俄被踢出SWIFT,地缘冲突推动区块链金融清算行业发展
  18. 美团客户端面试题目记录_20210901
  19. OSPF的七种状态机
  20. 手机彩铃java工程项目_4G中手机彩铃业务信令过程简述

热门文章

  1. Extjs嵌入html
  2. 面试题_分层遍历二叉树
  3. 不使用第三个变量交换两个变量
  4. 格密码教程(四):SVP和CVP,Hermite定理,Blichfeld定理和Minkowski定理
  5. 被新基建点名的大数据,有哪些书最值得读?
  6. 两天,我把分布式事务搞完了
  7. 内推 | 阿里巴巴2020秋季校园招聘正式启动!社招也有!!
  8. 免费直播| TDD如何颠覆了我对开发的认知?
  9. eclipse加速之禁用JS、jsp等文件的语法验证
  10. VAE【keras实现】