博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BFS模板
阅读量:5249 次
发布时间:2019-06-14

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

HDU1372

模板

1 #include 
2 #include
3 #include
4 using namespace std; 5 6 int step; 7 int to[8][2] = {-2,1,-1,2,1,2,2,1,2,-1,1,-2,-1,-2,-2,-1};//骑士移动的8个方位 8 int map[10][10],ex,ey; 9 char s1[5],s2[5];10 11 struct node12 {13 int x,y,step;14 };15 16 int check(int x,int y)17 {18 if(x<0 || y<0 || x>=8 || y>=8 || map[x][y])19 return 1;20 return 0;21 }22 23 int bfs()24 {25 int i;26 queue
Q;27 node p,next,q;28 p.x = s1[0]-'a';29 p.y = s1[1]-'1';30 p.step = 0;31 ex = s2[0]-'a';32 ey = s2[1]-'1';33 memset(map,0,sizeof(map));34 map[p.x][p.y] = 1; 35 Q.push(p);36 while(!Q.empty())37 {38 q = Q.front();39 Q.pop();40 if(q.x == ex && q.y == ey)41 return q.step;42 for(i = 0;i<8;i++)43 {44 next.x = q.x+to[i][0];45 next.y = q.y+to[i][1];46 if(next.x == ex && next.y == ey)47 return q.step+1;48 if(check(next.x,next.y))49 continue;50 next.step = q.step+1;51 map[next.x][next.y] = 1;52 Q.push(next);53 }54 }55 return 0;56 }57 58 int main()59 {60 while(~scanf("%s%s",s1,s2))61 {62 printf("To get from %s to %s takes %d knight moves.\n",s1,s2,bfs());63 }64 return 0;65 }

 

转载于:https://www.cnblogs.com/CrazyBaby/p/5708543.html

你可能感兴趣的文章
HDU 2548 A strange lift
查看>>
Linux服务器在外地,如何用eclipse连接hdfs
查看>>
react双组件传值和传参
查看>>
BNU29140——Taiko taiko——————【概率题、规律题】
查看>>
[Kaggle] Sentiment Analysis on Movie Reviews
查看>>
价值观
查看>>
mongodb命令----批量更改文档字段名
查看>>
CentOS 简单命令
查看>>
使用&nbsp;SharedPreferences 分类: Andro...
查看>>
TLA+(待续...)
查看>>
题解: [GXOI/GZOI2019]与或和
查看>>
MacOS copy图标shell脚本
查看>>
国外常见互联网盈利创新模式
查看>>
Oracle-05
查看>>
linux grep 搜索查找
查看>>
Not enough free disk space on disk '/boot'(转载)
查看>>
android 签名
查看>>
vue项目中使用百度统计
查看>>
android:scaleType属性
查看>>
SuperEPC
查看>>