博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
跳马(广搜_队列)
阅读量:6832 次
发布时间:2019-06-26

本文共 910 字,大约阅读时间需要 3 分钟。

时限:1000ms 内存限制:10000K 总时限:3000ms

描述:

在国际象棋中,马的走法与中车象棋类似,即俗话说的“马走日”,下图所示即国际象棋中马(K)在一步能到达的格子(其中黑色的格子是能到达的位置)。

现有一200*200大小的国际象棋棋盘,棋盘中仅有一个马,给定马的当前位置(S)和目标位置(T),求出马最少需要多少跳才能从当前位置到达目标位置。

输入:

本题包含多个测例。输入数据的第一行有一个整数N(1<=N<=1000),表示测例的个数,接下来的每一行有四个以空格分隔的整数,分别表示马当前位置及目标位置的横、纵坐标C(x,y)和G(x,y)。坐标由1开始。

输出:

对于每个测例,在单独的一行内输出一个整数,即马从当前位置跳到目标位置最少的跳数。

输入样例:

2

1 1 2 1

1 5 5 1

输出样例:

3

4

#include
#define n 200char a[200][200]={
0};//迷宫数组(坐标由0开始)int open[2000],openlen=2000,head,tail;int Berow,Becol;//起点横纵坐标int Enrow,Encol;//终点横,纵坐标void init();int search();int emptyopen();int takeoutopen();int canmoveto(int row,int col,int *p,int *q,int i);//i代表跳马的方向int isaim(int row,int col);int used(int row,int col);void addtoopen(int row,int col);/int main(){ int m; scanf("%d",&m);//m个测例 for(int i=0;i
=0 &&col>=0 &&row

转载于:https://www.cnblogs.com/IThaitian/archive/2012/07/16/2593374.html

你可能感兴趣的文章
【纪中集训2019.3.11】Cubelia
查看>>
noip2018游记
查看>>
DAY11-MYSQL单表查询
查看>>
JSON和JSONP (含jQuery实例)(share)
查看>>
selenium自动化脚本报错总结
查看>>
A quick introduction to Source Insight for seamless development platform between Linux and Windows
查看>>
MetaMask/obs-store
查看>>
linux命令8
查看>>
创建currvar、nextvar函数
查看>>
js设置全局变量 ajax中赋值
查看>>
1147: 查找子数组
查看>>
PLSQL_海量数据处理系列2_分区
查看>>
Linux 典型应用之Mysql
查看>>
架构设计之策略模式
查看>>
理解距(数学)
查看>>
web 开发之js---js 实现网页中播放wav的一种方法(flash播放器)
查看>>
openwrt下部署adbyby去广告大师 免luci 带自启动,自动开启透明代理
查看>>
[.Net 多线程处理系列专题七——对多线程的补充
查看>>
shell code one
查看>>
适配手机端浏览器
查看>>