zoj1091
来源:互联网 发布:儿童网络投票策划方案 编辑:程序博客网 时间:2024/05/29 19:26
广度优先搜索的题,感觉挺简单的,每个Knight就跟中国象棋里的马一样,走日字型,在每个地方可以往八个方向走(如果不越界的话)
#include <stdio.h>#include <string.h>#include <math.h>#include <queue>using namespace std;int main(){ int p[9][9]; char c1, c2, c3, c4; while (scanf("%c%c %c%c", &c1, &c2, &c3, &c4)!=EOF) {memset(p, 0, sizeof(p)); /*不仅表示此处是否走过,而且可用来表示步数加一*/int a=c1-'a'+1, b=c2-'0', x=c3-'a'+1, y=c4-'0';p[a][b]=1; /*0表示走过,非0表示没走过*/queue<int> q;q.push(a);q.push(b);while (!q.empty()) {a = q.front();q.pop();b = q.front();q.pop();if (a==x&&b==y)break;if (a+1<=8){if (b+2<=8&&p[a+1][b+2]==0){p[a+1][b+2]=p[a][b]+1;q.push(a+1);q.push(b+2);}if (b-2>=1&&p[a+1][b-2]==0){p[a+1][b-2]=p[a][b]+1;q.push(a+1);q.push(b-2);}}if (a-1>=1){if (b+2<=8&&p[a-1][b+2]==0){p[a-1][b+2]=p[a][b]+1;q.push(a-1);q.push(b+2);}if (b-2>=1&&p[a-1][b-2]==0){p[a-1][b-2]=p[a][b]+1;q.push(a-1);q.push(b-2);}}if (a+2<=8){if (b+1<=8&&p[a+2][b+1]==0){p[a+2][b+1]=p[a][b]+1;q.push(a+2);q.push(b+1);}if (b-1>=1&&p[a+2][b-1]==0){p[a+2][b-1]=p[a][b]+1;q.push(a+2);q.push(b-1);}}if (a-2>=1){if (b+1<=8&&p[a-2][b+1]==0){p[a-2][b+1]=p[a][b]+1;q.push(a-2);q.push(b+1);}if (b-1>=1&&p[a-2][b-1]==0){p[a-2][b-1]=p[a][b]+1;q.push(a-2);q.push(b-1);}}}printf("To get from %c%c to %c%c takes %d knight moves.\n",c1, c2, c3, c4, p[a][b]-1);getchar();}return 0;}
- zoj1091
- zoj1091
- zoj1091
- zoj1091
- zoj1091题解
- zoj1091 Knight Moves
- zoj1091-Knight Moves
- [水]ZOJ1091
- zoj1091 Knight Moves
- zoj1091(深度搜索
- zoj1091(广度搜索
- ZOJ1091 Knight Moves
- zoj1091经典的搜索题目
- zoj1091经典的广搜题目
- UVA439 POJ2243 HDU1372 ZOJ1091 Knight Moves
- POJ 2181 JUMPING COWS(DP)
- matlab下安装libsvm遇到的问题
- win7 联想一键恢复工程师版7.0安装笔记
- Spring MVC 之 AbstractCommandController
- Strategy模式和Template Method模式的异同浅析
- zoj1091
- 关于javascript的unescape()函数
- WINDOWS游戏编程大师技巧-常见编绎连接错误FAQ
- 系统架构-性能篇章1(应用系统性能1)
- 多重背包,二进制优化,单调队列优化
- 如何在WebService接收一个XML文件并解析,客户端如何发送这个XML文件?急求简单代码示例。。
- Servlet——Response 和 Resquest
- javascript字符串扩展函数,可自定义去掉字符(trim(),ltrim(),rtrim())
- 汉字库的模型