POJ 2243解题报告
来源:互联网 发布:淘宝商品摆放 编辑:程序博客网 时间:2024/05/16 14:31
BFS
#include <stdio.h>#include <memory.h>#include <stdlib.h>const int maxn=15;int visit[maxn*maxn];int dir[8][2]={{-2,-1},{-2,1},{-1,2},{1,2},{2,1},{2,-1},{1,-2},{-1,-2}};char a[3];char b[3];int bfs(int st,int fin);int main(){while(scanf("%s",a)!=EOF){scanf("%s",b);int sy=a[0]-'a';int sx=a[1]-'1';int fy=b[0]-'a';int fx=b[1]-'1';memset(visit,0,sizeof(visit));int sl=sx*8+sy;int fl=fx*8+fy;if(sl==fl){printf("To get from %s to %s takes 0 knight moves.\n",a,b);}else{printf("To get from %s to %s takes %d knight moves.\n",a,b,bfs(sl,fl));}}return 0;}int bfs(int st,int fin){int que[maxn*maxn];int font=0;int rear=0;int distance[maxn*maxn];distance[st]=0;que[rear++]=st;while(font<rear){int on=que[font++];int x=on/8;int y=on%8;int i;for(i=0;i<8;i++){int dx=x+dir[i][0];int dy=y+dir[i][1];int on2=dx*8+dy;if(dx>=0&&dx<8&&dy>=0&&dy<8&&!visit[on2]){ visit[on2]=1; distance[on2]=distance[on]+1; que[rear++]=on2; if(on2==fin) return distance[on2];}} }}
- POJ 2243解题报告
- POJ 2243解题报告
- poj数百篇解题报告
- poj 1141解题报告
- poj 1001解题报告
- poj 1011 解题报告
- poj 1087 解题报告
- poj 2153解题报告
- poj 2051解题报告
- POJ 1167 解题报告
- poj 1026 解题报告
- POJ 1077 解题报告
- POJ 1042 解题报告
- POJ 1095 解题报告
- POJ 1159解题报告
- poj 2312解题报告
- POJ 1001解题报告
- POJ 1002解题报告
- 《C++第十四周实验报告2-1》---建立专门的链表类处理有关动态链表的操作
- 动画设计
- 好多的架构师
- Linux 目录结构及主要内容
- OpenCV播放视频 加随视频播放自动滚动的滚动条
- POJ 2243解题报告
- 在指定的线程接收信号 pthread_sigmask
- C语言计算任意两日期之间天数
- 定制自己的flex淡入淡出效果组件
- MySQL查询优化器源码分析
- google搜索命令列表
- 随机生成十个数并选出最大值
- android - Jni Environment 函数
- 抽象类与接口的区别 (转自老毕)