博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
439:Knight Moves
阅读量:6682 次
发布时间:2019-06-25

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

BFS即可,字符串数组 size 定义成了 2 导致输入一直错误,应该是无法存入'\0' 引起的,待会儿再深究。

#include
using namespace std;const int maxn = 8;typedef pair
P;int d[maxn][maxn];char a[3],b[3];int x,y,x2,y2;void BFS(){ queue

q; q.push(P(x,y)); d[x][y] = 0; while(!q.empty()){ P t = q.front(); q.pop(); x = t.first,y = t.second; for(int dx = -2;dx <= 2;dx++){ for(int dy = -2;dy <= 2;dy++){ if(!dx || !dy) continue; if(abs(abs(dy)-abs(dx)) == 0) continue; if(x+dx >= 0 && x+dx < maxn && y+dy >= 0 && y+dy < maxn && d[x+dx][y+dy] == -1){ q.push(P(x+dx,y+dy)); d[x+dx][y+dy] = d[x][y] + 1; if(x+dx == x2 && y+dy == y2) return; } } } }}int main(){ // freopen("data.in","r",stdin); // freopen("data.out","w",stdout); while(scanf("%s %s",a,b) == 2){ memset(d,-1,sizeof(d)); x = a[1] - '1'; y = a[0] - 'a'; x2 = b[1] - '1'; y2 = b[0] - 'a'; BFS(); printf("To get from %s to %s takes %d knight moves.\n",a,b,d[x2][y2]); } return 0;}

 

转载于:https://www.cnblogs.com/JingwangLi/p/10202702.html

你可能感兴趣的文章
图解VMware内存机制
查看>>
【翻译】Win with APIs by keeping it simple
查看>>
1月15日.xyz域名总量10强:新网排名降至第八
查看>>
1月末中国域名商解析量13强:西数破百万指日可待
查看>>
分布式项目规范总结
查看>>
阿里创新自动化测试工具平台--Doom
查看>>
Centos 5.5-yum安装配置LNMP
查看>>
跟 陌生人吃饭-这样的网站你认为如何?
查看>>
IT项目管理之接受风险
查看>>
Android Service启动Dialog
查看>>
Win2000 Server***监测
查看>>
如何查询SQL Server备份还原历史记录
查看>>
微信公众号H5支付遇到的那些坑
查看>>
好程序员web前端分享js实现实战案例
查看>>
Virtualbox安装Ubuntu,please remove the installation
查看>>
活动的启动模式汇总
查看>>
pptpd基于mysql用户验证的完整操作步骤
查看>>
git shallow clone之后切换远程分支的方案
查看>>
web服务之Apache实现的https访问
查看>>
【Qt学习笔记】8.Qt中的多线程
查看>>