A - 移动的骑士
A - 移动的骑士
Problem Description
Somurolov先生是一个国际象棋高手,他声称在棋盘上将骑士棋子从一点移动到另外一点,没有人比他快,你敢挑战他吗?
你的任务是编程计算出将一个骑士棋子从一点移动到另外一点,最少需要移动的步数。显而易见,这样你就有赢得Somurolov先生的机会。国际象棋中的骑士在棋盘上可移动的范围如下图:
Input
首先输入测试样例的个数n。接下来是n组输入数据,每组测试数据由三行整数组成:第一行是棋盘的边长l
(4 <= l <= 300),整个棋盘的面积也就是
l*l;第二行和第三行分别是骑士棋子的初始位置和目标位置,表示为整数对形式{0, …, l-1}*{0, …,
l-1}。保证棋子的初始和目标位置是棋盘上的合法位置。Output
对于每一个输入的测试样例,请你算出骑士从初始位置移动到目标位置最小移动步数。如果初始位置和目标位置相同,那么骑士移动的距离就是0。最后单独一行输出所求距离。
Sample Input
3
8
0 0
7 0
100
0 0
30 50
10
1 1
1 1Sample Output
5
28
0
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std; const int maxn = ; bool mp[maxn][maxn]; // 表示当前点是否被走过
int sx, sy, tx, ty, l; // s表示初始坐标,t表示目标位置
int tox[] = {, , , , -, -, -, -};
int toy[] = {, , -, -, -, -, , };
// 通过下标关联,表示马的八个走向 struct Node { // 结构体,表示当前点的坐标和到达步数
int x, y, s;
}; bool judge(Node n){ // 用于判断一个坐标(x, y)是否在图内,并且没有被走过
if(n.x >= && n.x < l && n.y >=
&& n.y < l && !mp[n.x][n.y]) return true;
return false;
} int bfs(){
Node now, nxt;
queue<Node > q;
now.x = sx;
now.y = sy;
now.s = ; // 起始点的初始化
q.push(now); // 将起始点加入队列
mp[now.x][now.y] = true; // 起始点已经走过了
while(!q.empty()){
now = q.front();
q.pop(); if(now.x == tx && now.y == ty) return now.s; //到达目标点
for(int i=; i<; i++){ // 枚举马的八种走法
nxt.x = now.x + tox[i];
nxt.y = now.y + toy[i];
nxt.s = now.s + ; if(judge(nxt)){ // 下一个位置在图内且可以走
q.push(nxt); // 加入队列
mp[nxt.x][nxt.y] = true;
}
}
}
return -;
} int main()
{
int n;
scanf("%d", &n);
while(n--){
memset(mp, false, sizeof(mp));
scanf("%d", &l);
scanf("%d%d", &sx, &sy);
scanf("%d%d", &tx, &ty);
int ans = bfs(); printf("%d\n", ans);
} return ;
}
A - 移动的骑士的更多相关文章
- COGS746. [网络流24题] 骑士共存
骑士共存问题«问题描述:在一个n*n个方格的国际象棋棋盘上,马(骑士)可以攻击的棋盘方格如图所示.棋盘 上某些方格设置了障碍,骑士不得进入. «编程任务:对于给定的n*n个方格的国际象棋棋盘和障碍标志 ...
- 【BZOJ1671】[Usaco2005 Dec]Knights of Ni 骑士 BFS
[Usaco2005 Dec]Knights of Ni 骑士 Description 贝茜遇到了一件很麻烦的事:她无意中闯入了森林里的一座城堡,如果她想回家,就必须穿过这片由骑士们守护着的森林.为 ...
- 骑士游历/knight tour - visual basic 解决
在visual baisc 6 how to program 中文版第七章的练习题上看到了这个问题,骑士游历的问题. 在8x8的国际象棋的棋盘上,骑士(走法:一个方向走两格,另一个方向一格)不重复走完 ...
- BZOJ1085: [SCOI2005]骑士精神 [迭代加深搜索 IDA*]
1085: [SCOI2005]骑士精神 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1800 Solved: 984[Submit][Statu ...
- BZOJ 1040 【ZJOI2008】 骑士
Description Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬.最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战火 ...
- 【BZOJ-1040】骑士 树形DP + 环套树 + DFS
1040: [ZJOI2008]骑士 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3312 Solved: 1269[Submit][Status ...
- BZOJ1040 [ZJOI2008]骑士
Description Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各 界的赞扬.最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战 ...
- BFS 骑士的移动
骑士的移动 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=83498#problem/E 题目: Description A f ...
- LA 3523 圆桌骑士
题目链接:http://vjudge.net/contest/141787#problem/A http://poj.org/problem?id=2942 此题很经典 知识点:DFS染色,点-双连通 ...
- HDU-4529 郑厂长系列故事——N骑士问题 状态压缩DP
题意:给定一个合法的八皇后棋盘,现在给定1-10个骑士,问这些骑士不能够相互攻击的拜访方式有多少种. 分析:一开始想着搜索写,发现该题和八皇后不同,八皇后每一行只能够摆放一个棋子,因此搜索收敛的很快, ...
随机推荐
- 关于SQLNET.AUTHENTICATION_SERVICES= (NTS) 的解释
原文转自:http://www.360doc.com/content/12/0207/12/3446769_184740592.shtml 标题所代表的意思为 使用操作系统本地验证,一般不 ...
- ABAP术语-Authorization Object
Authorization Object 原文:http://www.cnblogs.com/qiangsheng/archive/2007/12/20/1006585.html Element of ...
- Maven 运行启动时****找不到符号*com.xxx.user.java
Maven 运行启动时****找不到符号*com.xxx.user.java maven项目更改后没有安装 (install) 重新安装解决问题!
- numpy的总结
一:基础篇 1)数值 import numpy as np np.set_printoptions(linewidth=200,suppress=True) a = np.array([1,2,3,4 ...
- 关于java dom解析的问题
如下的xml代码: <persons> <person> <name>小强</name> <sex>male</sex> < ...
- linux 用户 用户组
useradd -m -G sudo zhangxiao passwd zhangxiao
- Manacher(马拉车)学习笔记
Manacher可以有效的在\(O(n)\)时间内解决一个字符串的回文子串的题目 目录 简介 讲解 推介 简单的练习 恐怖的练习QAQ 小结 简介 开头都说了,Manacher是目前解决回文子串的最有 ...
- SQL Server附加数据库拒绝访问错误解决方法
今天在MsSQL里附加数据库时提示操作系统错误5(拒绝访问),这里我没给出了两个解决方案供大家解决问题. 方案一:切换登录方式 出现这种情况是由于用“混合验证方式”(SQL Server身份验证)登录 ...
- struts2官方 中文教程 系列十四:主题Theme
介绍 当您使用一个Struts 2标签时,例如 <s:select ..../> 在您的web页面中,Struts 2框架会生成HTML,它会显示外观并控制select控件的布局.样式和 ...
- (转) Sqoop使用实例讲解
原博客地址:http://blog.csdn.net/evankaka 摘要:本文主要讲了笔者在使用sqoop过程中的一些实例 一.概述与基本原理 Apache Sqoop(SQL-to-Hadoop ...

