POJ1915(Knight Moves)
题目链接
宽度优先搜索。
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)相关推荐
- Knight Moves
Knight Moves poj-1915 题目大意:在国际象棋中有一个骑士,想从一个点到达另一个点.骑士可以从2*3的矩阵的一角跳到对角线的另一角.问:骑士最少需要跳多少次才能从一个点跳到另一个点. ...
- poj - 2243 Knight Moves
这题和poj 1915一样,用bfs做走马步.现在再看当时的代码,真是好幼稚啊. 1 #include <stdio.h> 2 #include <string.h> 3 in ...
- 1 Knight Moves
Problem F- Knight Moves 题目来源:https://vjudge.net/contest/207868#problem/F Problem description: 题意概括:中 ...
- HDU 1372 Knight Moves
最近在学习广搜 这道题同样是一道简单广搜题=0= 题意:(百度复制粘贴0.0) 题意:给出骑士的骑士位置和目标位置,计算骑士要走多少步 思路:首先要做这道题必须要理解国际象棋中骑士的走法,国际象棋中 ...
- OpenJudge/Poj 1915 Knight Moves
1.链接地址: http://bailian.openjudge.cn/practice/1915 http://poj.org/problem?id=1915 2.题目: 总Time Limit: ...
- hdu1372 Knight Moves BFS 搜索
简单BFS题目 主要是读懂题意 和中国的象棋中马的走法一样,走日字型,共八个方向 我最初wa在初始化上了....以后多注意... 代码: 1 #include <iostream> 2 # ...
- POJ2243 Knight Moves —— A*算法
题目链接:http://poj.org/problem?id=2243 Knight Moves Time Limit: 1000MS Memory Limit: 65536K Total Sub ...
- zoj 1091 Knight Moves
题目见zoj 1091 使用宽度搜索优先来求解,这个算法已经忘记的差不多了,所以写出来的代码很罗嗦,看起来很不清晰. 好像还可以直接用公式或者神经网络算法求解,详见Knight's Tour /* z ...
- (BFS)Knight Moves(hdu1372)
题目: 在象棋王国,尼古拉斯.火山是一匹英俊的马,他非常幸运迎娶了白马王国的公主,他们将度蜜月,你现在是他们的女仆,火山会问你去一些地方最少需要多少步,这么简单的事当然难不倒你.由于火山是一匹马,他的 ...
- UVa 439 - Knight Moves
给一个8*8的棋盘,给出骑士的起点和终点,求出从起点到终点的走的最小步数.这个也是ZOJ 的1091题. 用bfs解决,一个vis数组保存是否访问过,dis数组保存从起点到该点的移动次数.代码如下: ...
最新文章
- torch.nn.LogSoftmax()与输入具有相同尺寸和形状的张量,其值在[-inf,0)范围内
- miniui datagrid 隐藏列默认赋值_「小程序JAVA实战」 小程序默认加载的页面和生命周期(八)...
- Asp SqlDataSource将数据库数据绑定在 GridView
- ioslabel阴影,UILabel的内阴影
- 你给客户报完价,客户就没消息了,什么原因呢?
- FPGA入门程序(1)——流水灯
- 如何做一个阿里云物联网安卓原生APP
- 移动前端图片压缩上传
- 机器人操作系统入门(一)ROS简介
- NAS不够快?那就上SSD享受如火箭般的体验吧!
- 欢迎进入GeekYang博客导航一站式搜索(所有博客的汇总帖)
- java swing实战——baba is you(结束语)
- 独家!华为、腾讯齐聚香港,一起密谋着什么?
- 用友nc开发,添加附件上传按钮
- OGC 网络数据服务的类型与操作+实现GeoServer软件在Apache+Tomcat的部署+OGC数据服务WMS、WFS和WCS的发布
- Java微信开发-微信java开发接入平台实例
- Zippo:如何卖打火机给不抽烟的年轻人
- 虎符2022RE复现
- 调用系统裁剪工具的坑
- 植物大战僵尸全明星服务器维护中怎么办,植物大战僵尸全明星黑屏闪退解决应对方法推荐...
热门文章
- 【HDU - 4342】History repeat itself(数学)
- 【译】Matplotlib:plotting
- 文件的查找与压缩归档
- Linux--进程组 作业 会话 守护(精灵)进程
- linux malloc 内存不足,linux中 对malloc/free分配及释放内存空间时发生的泄漏问题
- c#机器人聊天软件_3.C#面向对象基础聊天机器人
- android使用Charles抓包https请求
- 【C++/Python 双语言实现】Luogu5092 Cube Stacking
- .Net Framework3.5离线安装
- python接口测试_【Python自学】Python接口自动化测试的学习 - 伊凡Ivan