UVa439(BFS最短路实现)
来源:互联网 发布:淘宝的旗舰店可信吗 编辑:程序博客网 时间:2024/04/30 04:59
#include <iostream>using namespace std;struct Node{int x;int y;int step;}que[100]; int book[8][8];string beginstr;string endstr;int endx;int endy;int direct[8][2]={{2,1},{2,-1},{-1,2},{-1,-2},{1,2},{1,-2},{-2,-1},{-2,1}};int main(){while(cin>>beginstr>>endstr){int x=8-(beginstr[1]-'0');int y=beginstr[0]-'a';endx=8-(endstr[1]-'0');endy=endstr[0]-'a';int flag=0;int head=0;int tail=0;que[tail].x=x;que[tail].y=y;que[tail].step=0;tail++;book[x][y]=1;//别忘了确保队列不为空 while(head<tail){for(int i=0;i<8;i++){int dx=que[head].x+direct[i][0];int dy=que[head].y+direct[i][1];if(dx>=8||dx<0||dy>=8||dy<0)continue;if(dx==endx&&dy==endy){flag=1;break;}if(book[dx][dy]==0){book[dx][dy]=1;//BFS必须要标记已走过的点 que[tail].x=dx;que[tail].y=dy;que[tail].step=que[head].step+1;tail++;}}if(flag)break;head++;//别忘了head++才能对下一个点进行拓展 }cout<<que[tail-1].step<<endl;}return 0;}
比DFS速度快,找到最短路径即返回
0 0
- UVa439(BFS最短路实现)
- uva439 - Knight Moves(BFS求最短路)
- UVa439(DFS实现)
- BFS-最短路(迷宫)
- poj_2243/uva439 Knight Moves(bfs經典)
- UVa439---Knight Moves(BFS应用)
- 【UVA439】 Knight Moves BFS (3/1000)
- POJ 1724 ROADS(bfs最短路)
- hdu 2354(bfs求最短路)
- bfs最短路+dp(FZU 2186)
- SGU 4444 Travel(最短路+bfs)
- POJ2251(BFS求最短路)
- POJ 3170(bfs求最短路)
- 非常可乐(BFS和最短路)
- 迷宫问题、最短路(BFS,DFS)
- 洛谷P1144 最短路计数(BFS)
- hdu5876 Sparse Graph(bfs最短路)
- NOIP2013 华容道 (BFS,最短路)
- 2015多校第二场1002 Buildings
- UVA 10815
- [Leetcode 160] Intersection of Two Linked Lists
- 有关于stm32 串口DMA的问题
- UVA 400 Unix ls
- UVa439(BFS最短路实现)
- awk 使用
- android ImageButton使用形状非方形的png图片但却显示出正方形白边的情况
- HDU-2289 Cup
- HDU 2952 Counting Sheep (DFS)
- 一个Web布局实例
- 验证数学黑洞 ,用户输入一个四位数,输出变换到6174的过程
- javascript之变量
- Java小日历