广搜 基础 走迷宫 记录路径
来源:互联网 发布:国产凌凌漆 知乎 编辑:程序博客网 时间:2024/05/16 10:52
###############################
Origin:POJ3984
Type:BFS
##############################
#include <iostream>#include <cstdio>#include <stack>#include <queue>#include <cstring>#define N 5using namespace std;const int dx[4] = {0, 0, -1, 1};const int dy[4] = {-1, 1, 0, 0};int fa[N][N], grid[N][N];bool vis[N][N];inline bool inbound (int x, int y){ return (0<=x && x<N && 0<=y && y<N);}void bfs(int start, int aim){ int x = start / N, y = start % N; fa[x][y] = start; vis[x][y] = true; queue<int>q; q.push(start); while (!q.empty()){ int temp = q.front(); q.pop(); x = temp / N, y = temp % N; int nx, ny; for (int i=0; i<4; i++){ nx = x + dx[i]; ny = y + dy[i]; if (inbound(nx, ny) && !grid[nx][ny] && !vis[nx][ny]){ fa[nx][ny] = temp; int a = nx * N + ny; if (a == aim) return ; q.push(a); vis[nx][ny] = 1; } } }}void trace(int aim){ int x =aim/N,y =aim%N,fx,fy; stack<int> dir; dir.push (aim); while (1){ fx = fa[x][y] / N; fy = fa[x][y] % N; if (fx == x && fy == y) break; dir.push(fa[x][y]); x = fx, y = fy; } while (!dir.empty()){ printf("(%d, %d)\n",dir.top()/N,dir.top()%N); dir.pop(); }}int main(){ for(int i=0; i<N; i++) for(int j=0; j<N; j++) scanf("%d",&grid[i][j]); memset(vis, 0, sizeof(vis)); memset(fa, 0, sizeof(fa)); bfs(0, N*N-1); trace(N*N-1); return 0;}
0 0
- 广搜 基础 走迷宫 记录路径
- 走迷宫(广搜路径记录(路径唯一))
- 迷宫问题 (广搜+记录路径)
- Poj_3984走迷宫(广搜)
- 走迷宫值路径记录
- POJ 3984 迷宫问题 广搜记录路径
- 迷宫问题 (广搜记录路径(数组))
- 广搜记录路径——迷宫问题
- 迷宫问题 (广搜并记录路径)
- 双向广搜示例:走迷宫1
- 广搜记录路径
- 自动走迷宫_记录走的路径
- POJ 3984-----E - 广搜记录路径 基础
- 走迷宫--图的搜索(bfs)并记录路径
- 深搜和广搜 迷宫最短路径
- codeforces-C. Journey(广搜+记录路径)
- poj3984迷宫问题 广搜+最短路径+模拟队列
- 迷宫最短路径 --- 广度优先搜索(广搜)
- UIScrollView 详解
- TIME_WAIT and its design implications for protocols and scalable client server systems
- 从零实现MVC框架之依赖注入IOC(7)
- JNDI全面总结(转载自http://javacrazyer.iteye.com/blog/759485)
- 函数 (下)
- 广搜 基础 走迷宫 记录路径
- 对象池技术
- Android显示Log信息(带行号,类名,方法名)
- 算法导论学习笔记-5.2 指示器随机变量
- [开源夏令营][三] 研究 Docker remote API 的前期准备
- win8系统下安装 .NET Framework 3.5出现错误代码:0x800F0906
- Calendar
- java操作Oracle类型XMLType总结二:使用Mybatis
- 深入浅出工厂模式