题目链接

宽度优先搜索。

View Code

 1 #include <stdio.h>
 2 #include <memory.h>
 3 #include <queue>
 4 #define N 300
 5 using namespace std;
 6 typedef pair<int,int> node;
 7 queue<node> Q;
 8 int dx[8]={1,1,-1,-1,2,2,-2,-2};
 9 int dy[8]={2,-2,2,-2,1,-1,1,-1};
10 int n;
11 int step[N][N];
12 int si,sj,ei,ej;
13 int bfs()
14 {
15   int i,j,ni,nj,d;
16   node pos;
17   memset(step,0,sizeof(step));
18   while(!Q.empty()) Q.pop();
19   Q.push(make_pair(si,sj));
20   step[si][sj]=1;
21   while(!Q.empty())
22   {
23     pos=Q.front(),Q.pop();
24     i=pos.first;
25     j=pos.second;
26     for(d=0;d<8;d++)
27     {
28        ni=i+dx[d],nj=j+dy[d];
29        if(ni<0 || nj<0 || ni>=n || nj>=n || step[ni][nj])  continue;
30        step[ni][nj]=step[i][j]+1;
31        if(ni==ei && nj==ej) return step[i][j];
32        Q.push(make_pair(ni,nj));
33      }
34   }
35 }
36 int main()
37 {
38   int t;
39   scanf("%d",&t);
40   while(t--)
41   {
42     scanf("%d%d%d%d%d",&n,&si,&sj,&ei,&ej);
43     if(si==ei && sj==ej)  printf("0\n");
44     else  printf("%d\n",bfs());
45   }
46   return 0;
47 }

转载于:https://www.cnblogs.com/algorithms/archive/2012/04/25/2469774.html

POJ1915(Knight Moves)相关推荐

  1. Knight Moves

    Knight Moves poj-1915 题目大意:在国际象棋中有一个骑士,想从一个点到达另一个点.骑士可以从2*3的矩阵的一角跳到对角线的另一角.问:骑士最少需要跳多少次才能从一个点跳到另一个点. ...

  2. poj - 2243 Knight Moves

    这题和poj 1915一样,用bfs做走马步.现在再看当时的代码,真是好幼稚啊. 1 #include <stdio.h> 2 #include <string.h> 3 in ...

  3. 1 Knight Moves

    Problem F- Knight Moves 题目来源:https://vjudge.net/contest/207868#problem/F Problem description: 题意概括:中 ...

  4. HDU 1372 Knight Moves

    最近在学习广搜  这道题同样是一道简单广搜题=0= 题意:(百度复制粘贴0.0) 题意:给出骑士的骑士位置和目标位置,计算骑士要走多少步 思路:首先要做这道题必须要理解国际象棋中骑士的走法,国际象棋中 ...

  5. OpenJudge/Poj 1915 Knight Moves

    1.链接地址: http://bailian.openjudge.cn/practice/1915 http://poj.org/problem?id=1915 2.题目: 总Time Limit: ...

  6. hdu1372 Knight Moves BFS 搜索

    简单BFS题目 主要是读懂题意 和中国的象棋中马的走法一样,走日字型,共八个方向 我最初wa在初始化上了....以后多注意... 代码: 1 #include <iostream> 2 # ...

  7. POJ2243 Knight Moves —— A*算法

    题目链接:http://poj.org/problem?id=2243 Knight Moves Time Limit: 1000MS   Memory Limit: 65536K Total Sub ...

  8. zoj 1091 Knight Moves

    题目见zoj 1091 使用宽度搜索优先来求解,这个算法已经忘记的差不多了,所以写出来的代码很罗嗦,看起来很不清晰. 好像还可以直接用公式或者神经网络算法求解,详见Knight's Tour /* z ...

  9. (BFS)Knight Moves(hdu1372)

    题目: 在象棋王国,尼古拉斯.火山是一匹英俊的马,他非常幸运迎娶了白马王国的公主,他们将度蜜月,你现在是他们的女仆,火山会问你去一些地方最少需要多少步,这么简单的事当然难不倒你.由于火山是一匹马,他的 ...

  10. UVa 439 - Knight Moves

    给一个8*8的棋盘,给出骑士的起点和终点,求出从起点到终点的走的最小步数.这个也是ZOJ 的1091题. 用bfs解决,一个vis数组保存是否访问过,dis数组保存从起点到该点的移动次数.代码如下: ...

最新文章

  1. torch.nn.LogSoftmax()与输入具有相同尺寸和形状的张量,其值在[-inf,0)范围内
  2. miniui datagrid 隐藏列默认赋值_「小程序JAVA实战」 小程序默认加载的页面和生命周期(八)...
  3. Asp SqlDataSource将数据库数据绑定在 GridView
  4. ioslabel阴影,UILabel的内阴影
  5. 你给客户报完价,客户就没消息了,什么原因呢?
  6. FPGA入门程序(1)——流水灯
  7. 如何做一个阿里云物联网安卓原生APP
  8. 移动前端图片压缩上传
  9. 机器人操作系统入门(一)ROS简介
  10. NAS不够快?那就上SSD享受如火箭般的体验吧!
  11. 欢迎进入GeekYang博客导航一站式搜索(所有博客的汇总帖)
  12. java swing实战——baba is you(结束语)
  13. 独家!华为、腾讯齐聚香港,一起密谋着什么?
  14. 用友nc开发,添加附件上传按钮
  15. OGC 网络数据服务的类型与操作+实现GeoServer软件在Apache+Tomcat的部署+OGC数据服务WMS、WFS和WCS的发布
  16. Java微信开发-微信java开发接入平台实例
  17. Zippo:如何卖打火机给不抽烟的年轻人
  18. 虎符2022RE复现
  19. 调用系统裁剪工具的坑
  20. 植物大战僵尸全明星服务器维护中怎么办,植物大战僵尸全明星黑屏闪退解决应对方法推荐...

热门文章

  1. 【HDU - 4342】History repeat itself(数学)
  2. 【译】Matplotlib:plotting
  3. 文件的查找与压缩归档
  4. Linux--进程组 作业 会话 守护(精灵)进程
  5. linux malloc 内存不足,linux中 对malloc/free分配及释放内存空间时发生的泄漏问题
  6. c#机器人聊天软件_3.C#面向对象基础聊天机器人
  7. android使用Charles抓包https请求
  8. 【C++/Python 双语言实现】Luogu5092 Cube Stacking
  9. .Net Framework3.5离线安装
  10. python接口测试_【Python自学】Python接口自动化测试的学习 - 伊凡Ivan