信息学奥赛一本通(1257:Knight Moves)
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)相关推荐
- 信息学奥赛一本通 1257:Knight Moves | OpenJudge NOI 2.5 917:Knight Moves
[题目链接] ybt 1257:Knight Moves OpenJudge NOI 2.5 917:Knight Moves [题目考点] 1. 广搜 迷宫问题 [解题思路] 广搜,迷宫问题. 不同 ...
- 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 章 ...
最新文章
- 使用rel=noopener
- linux上传github项目
- 转载:理解机器学习中的偏差与方差
- C++Builder 2010深入TApplication类之属性
- 使用 C# 下载文件的十八般武艺
- 比萨问题–建造者与装饰者
- hdu1596-find the safest road
- 【Unity3D日常开发】Unity3D中 C#反射Reflection的使用
- python题目-判断素数
- 与非门如何变成非门,与门,异或门
- LXDE桌面系统设置快捷键
- Ios常用第三方动画框架(三)
- linux获取系统信息(sysinfo函数的使用)
- 使用javascript制作 滚动字幕及时钟
- FCPX自定义分屏字幕插件:Stupid Raisins Split Pop效果展示
- react+antd修改主题色
- 俄被踢出SWIFT,地缘冲突推动区块链金融清算行业发展
- 美团客户端面试题目记录_20210901
- OSPF的七种状态机
- 手机彩铃java工程项目_4G中手机彩铃业务信令过程简述