(BFS)Knight Moves(hdu1372)

题目:

在象棋王国,尼古拉斯.火山是一匹英俊的马,他非常幸运迎娶了白马王国的公主,他们将度蜜月,你现在是他们的女仆,火山会问你去一些地方最少需要多少步,这么简单的事当然难不倒你。由于火山是一匹马,他的移动方式将会遵守国际象棋马的走法。
输入:
输入包含一个或多个输入样例。每个测试样例将会有两个坐标,表示现在的位置和将要到达的地方,每个坐标包含一个字母(a-h)表示列和一个数字(1-8) 行,这意味这这个象棋王国是一个8* 8的矩形。
Input
输入包含一个或多个输入样例。每个测试样例将会有两个坐标,表示现在的位置和将要到达的地方,每个坐标包含一个字母(a-h)表示列和一个数字(1-8) 行,这意味这这个象棋王国是一个8* 8的矩形。
Output
每一组样例将会输出一段话 “To get from xx to yy takes n knight moves.”,其中xx表示起点,yy表示终点,n为xx到yy的最短步数。
Sample Input
e2 e4
a1 b2
b2 c3
a1 h8
a1 h7
h8 a1
b1 c3
f6 f6
Sample Output
To get from e2 to e4 takes 2 knight moves.
To get from a1 to b2 takes 4 knight moves.
To get from b2 to c3 takes 2 knight moves.
To get from a1 to h8 takes 6 knight moves.
To get from a1 to h7 takes 5 knight moves.
To get from h8 to a1 takes 6 knight moves.
To get from b1 to c3 takes 1 knight moves.
To get from f6 to f6 takes 0 knight moves.

分析与解答

基础bfs,主要是知道那个马是怎么走的,就是每次是需要怎么走,然后列和行转换成数字就行

这里写图片描述

#include<stdio.h>
#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
int step;  
int dir[8][2]={{1,-2},{2,-1},{2,1},{1,2},{-1,2},{-2,1},{-2,-1},{-1,-2}};
int map[10][10],ex,ey;  
char s1[5],s2[5];  
struct node  
{  int x,y,step;
};  int bfs()  
{  int i;  memset(map,0,sizeof(map));  //标记数组 node st,ed;  //队首 st.x = s1[0]-'a';  st.y = s1[1]-'1';  st.step = 0;  ex = s2[0]-'a' ; //终点坐标 ey = s2[1]-'1';  queue<node> q;map[st.x][st.y] = 1;  q.push(st);  while(!q.empty())  {  st = q.front();  q.pop();  if(st.x == ex && st.y == ey)//队首元素等于终点的话直接返回 {return st.step;  }     for(i = 0; i<8; i++)  //变换八个位置 {  ed.x = st.x+dir[i][0];  ed.y = st.y+dir[i][1];       if (ed.x>=0&&ed.x<8&&ed.y>=0&&ed.y<8&&map[ed.x][ed.y]==0) //没走过而且在棋盘内 {  ed.step=st.step+1;  map[ed.x][ed.y]=1;  q.push(ed);  }  }  }  return 0;  
}  int main()  
{  while(~scanf("%s%s",s1,s2))  //s1跑到s2 {  printf("To get from %s to %s takes %d knight moves.\n",s1,s2,bfs());  }  return 0;  
}  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560726.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java上机作业要注意什么_Java第八次上机作业

1、请按照以下要求设计一个学生类Student&#xff0c;并进行测试。要求如下&#xff1a;1)Student类中包含姓名、成绩两个属性2)分别给这两个属性定义两个方法&#xff0c;一个方法用于设置值&#xff0c;另一个方法用于获取值.3)Student类中定义一个无参的构造方法和一个接收两…

(枚举)餐厅点餐(fzu2086)

问题&#xff1a; Jack最近喜欢到学校餐厅吃饭&#xff0c;好吃干净还便宜。 在学校餐厅&#xff0c;有a种汤&#xff0c;b种饭&#xff0c;c种面条&#xff0c;d种荤菜&#xff0c;e种素菜。 为了保证膳食搭配&#xff0c;Jack每顿饭都会点1~2样荤菜&#xff0c;1~2样素菜&…

java代下订单管理模块_用java语言开发一个订单管理系统

管理员登陆窗体(LoginForm)&#xff1a;窗体中包含“管理员姓名”&#xff0c;“管理员密码”,按钮:"确定","取消"操作主窗体(MainFrame)&#xff1a;包括&#xff1a;1、一个Jtable用来显示数据库中Orders表(订单表)中的...管理员登陆窗体(LoginForm)&…

(并查集)畅通工程

题目 某省调查城镇交通状况&#xff0c;得到现有城镇道路统计表&#xff0c;表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通&#xff08;但不一定有直接的道路相连&#xff0c;只要互相间接通过道路可达即可&#xff09;。…

java windows 2008_Windows server 2008 R2 安装Java环境

一、配置环境操作系统软件包Windows server 2008 R2jdk_1.7.rar二、安装操作1.右击解压jdk_1.7.rar&#xff1b;解压后双击运行jdk-7u79-windows-i586 .exe2.点击【下一步】一直到有个【更改】按钮&#xff0c;可以更改安装路径&#xff0c;设置完成后点击“下一步”。到达这个…

(kruskal)还是畅通工程

题目&#xff1a; 某省调查乡村交通状况&#xff0c;得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通&#xff08;但不一定有直接的公路相连&#xff0c;只要能间接通过公路可达即可&#xff09;&#xff0c;并要…

java 匿名类型_Java之匿名类讲解

匿名类&#xff0c;正如名字一样在java中没有名字标识的类&#xff0c;当然了编译后还是会安排一个名字的。下面是一个关于匿名类的简单例子&#xff1a;public classClient {public static voidmain(String[] args) throws InterruptedException {Thread tnew Thread(newRunna…

(并查集)小希的迷宫

题目&#xff1a; 上次Gardon的迷宫城堡小希玩了很久&#xff08;见Problem B&#xff09;&#xff0c;现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样&#xff0c;首先她认为所有的通道都应该是双向连通的&#xff0c;就是说如果有一个通道连通了房间A和B&…

java的三个环境变量是啥_JAVA中常用需要设置的三个环境变量(JAVA_HOME、CLASSPATH、PATH)...

JAVA中常用需要设置的三个环境变量:JAVA_HOME、CLASSPATH、PATH(一)  配置环境变量&#xff1a;(相对路径)1. JAVA_HOMEx:/jdk1.6.02. 用%JAVA_HOME%就可以取代:x:/jdk1.6.0这一部分CLASSPATH.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/activation.jar…

(并查集)The Suspects

题目 Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized as a global threat in mid-March 2003. To minimize transmission to others, the best strategy is to separate the suspects from others. In the Not-Spre…

java字节流分为_Java文件流可分为字节流和字符流。

【单选题】TCP 和 UDP 协议的相似之处是 ()【单选题】That was the first time I ______ French with a foreigner.【判断题】【判断题】对互联网和搜索引擎的应用是奥巴马连续淘汰希拉里、麦凯恩等竞争对手的法宝之一。【单选题】friend意为“朋友”,请问,“友谊”如何表达?【…

(最小生成树)prim算法

总结一下&#xff1a; 如果选 0为起点&#xff0c;low_cost[i]表示以 0这个起点到i 这个终点的权值&#xff0c;我们找最小的权值的终点i&#xff0c;然后以i为起点&#xff0c;去更新low_cost[]这个数组&#xff0c;如果与i相连的数是j&#xff0c;现在有两种情况&#xff0c…

Java调用虚拟键盘输入法_Android 点击屏幕空白处收起输入法软键盘(手动打开)...

很多时候&#xff0c;我们在使用应用时&#xff0c;会出现输入法软键盘弹出的问题&#xff0c;通常情况下&#xff0c;我们默认会使用户点击返回键或者下一步对软键盘进行隐藏。为了更好的体验&#xff0c;我们可以实现当用户使用完毕软键盘时。点击屏幕空白区域即可实现收起输…

(并查集)Find them, Catch them

题目 The police office in Tadu City decides to say ends to the chaos, as launch actions to root up the TWO gangs in the city, Gang Dragon and Gang Snake. However, the police first needs to identify which gang a criminal belongs to. The present question is…

(并查集)食物链

题目&#xff1a; 动物王国中有三类动物A,B,C&#xff0c;这三类动物的食物链构成了有趣的环形。A吃B&#xff0c; B吃C&#xff0c;C吃A。 现有N个动物&#xff0c;以1&#xff0d;N编号。每个动物都是A,B,C中的一种&#xff0c;但是我们并不知道它到底是哪一种。 有人用两…

多线程销售问题java_Java多线程Runable售票系统实现过程解析

一、无等待&#xff0c;直接出票【虽然解决了不会冲票问题&#xff0c;但显然不符合实际生活】&#xff1a;package com.thread.sale;public class Sale {public static void main(String[] args) {//悟&#xff0c;那么设计爬虫的时候&#xff0c;下载的资源唯一&#xff0c;使…

(并查集)Wireless Network

问题&#xff1a; 地震发生在东南亚。 ACM&#xff08;亚洲合作医疗团队&#xff09;已经与膝上电脑建立了无线网络&#xff0c;但是一次意外的余震袭击&#xff0c;网络中的所有计算机都被打破了。计算机一个接一个地修复&#xff0c;网络逐渐开始工作。由于硬件限制&#xf…

mysql 索引空间大小_查看数据库表中容量大小,表有多少记录,占多少空间以及索引的大小,以及未使用空间...

直接在sqlserver查询窗执行就OK了&#xff0c;也是网上看到的&#xff0c;对日常管理数据库工作者来说也蛮有用的&#xff0c;可以及时的清理冗余的数据&#xff0c;缓解数据库服务器的压力。Create Table #TableSpaceInfo --创建结果存储表(NameInfo NVarchar(50) ,RowsInfo i…

带权并查集-Building Block

题目&#xff1a; John are playing with blocks. There are N blocks (1 < N < 30000) numbered 1…N。Initially, there are N piles, and each pile contains one block. Then John do some operations P times (1 < P < 1000000). There are two kinds of ope…

怎么解决缺少java.doc_java 生成doc帮助文档时出现的问题

正在加载程序包com.csust.czj的源文件...正在构造 Javadoc 信息...标准 Doclet 版本1.7.0_03正在构建所有程序包和类的树...正在生成D:\EclipseProject\TankWar2.7\doc\com\csust\czj\Blood.html...java.lang.IllegalArgumentExceptionat sun.net.www.ParseUtil.decode(ParseUt…