迷宫最短
来源:互联网 发布:淘宝装修模板免费 编辑:程序博客网 时间:2024/05/14 23:52
# include <stdio.h>#include <cstring>char a[5][5];int b[5][5];int x = 0, y = 0;int flag = 0, step = 0 ,num = 0;int min(int num, int step){ return num > step ? step : num;}void dfs(int x, int y, int step){ if (a[x][y] == 'E') { if (num == 0) num = step; else num = min(num,step); return ; } else { for (int i = 0; i < 4 ; ++i) { if (i == 0) { if (a[x][y + 1] != '#' && y + 1 < 5 && b[x][y + 1] != 1) { b[x][y] = 1; dfs(x, y + 1,step + 1); b[x][y] = 0; } } if (i == 1) { if (a[x + 1][y] != '#' && x+ 1 < 5 && b[x + 1][y] != 1) { b[x][y] = 1; dfs(x + 1, y,step + 1); b[x][y] = 0; } } if (i == 2) { if (a[x][y - 1] != '#' && y - 1 >= 0 && b[x][y - 1] != 1) { b[x][y] = 1; dfs(x, y - 1,step + 1); b[x][y] = 0; } } if(i==3) if (a[x - 1][y] != '#' && x - 1 >= 0 && b[x - 1][y] != 1) { b[x][y] = 1; dfs(x - 1, y,step + 1); b[x][y] = 0; } } }}int main(){ for (int i = 0; i < 5; i++) { gets(a[i]); for (int j = 0;j < 5; ++j) { b[i][j] = 0; } } dfs(x,y,step); printf("%d\n",num); return 0;}
0 0
- 迷宫最短路径
- 迷宫最短
- 迷宫最短路径
- 迷宫最短路径
- 迷宫-最短路径
- 最短迷宫
- 迷宫最短路径
- 迷宫的最短路径
- 迷宫的最短路径
- 广搜走迷宫最短路径
- 迷宫的最短路径
- 迷宫最短路径问题
- Sicily. 迷宫最短路径
- 迷宫的最短路径
- 迷宫的最短路径
- 迷宫的最短路径
- 迷宫的最短路径
- 迷宫最短路径 练习
- Android图片三级缓存原理
- JAVA--多线程同步,锁对象,条件对象
- 黑马程序员——ObjectiveC基础——多态与id类型
- 20151016_印度崛起,中国何去何从
- 20151018_印度不会是第二个中国
- 迷宫最短
- 全排列
- 深搜
- Java动态编程初探——Javassist
- java中最常用jar包的用途说明,适合初学者
- [1001]:Sum Problem(前n项和)
- Amazon OA2准备——LRU cache
- (三)17分钟过河记
- (二)盘子、硬币助谁赢