POJ - 3984 迷宫问题(水BFS)
2015-10-10 11:12
357 查看
题目大意:给你一个迷宫,最短时间内走出
解题思路:水
解题思路:水
#include <cstdio> #include <cstring> #include <queue> using namespace std; const int N = 10; struct Node { int x, y; Node() {} Node(int x, int y):x(x), y(y) {} }; int map ; int pathx , pathy ; bool vis ; int dir[4][2] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}}; void init() { for (int i = 0; i < 5; i++) for (int j = 0; j < 5; j++) scanf("%d" ,&map[i][j]); memset(vis, 0, sizeof(vis)); } void bfs() { queue<Node> Q; Q.push(Node(0, 0)); vis[0][0] = 1; while (!Q.empty()) { Node t = Q.front(); Q.pop(); for (int i = 0; i < 4; i++) { int x = t.x + dir[i][0]; int y = t.y + dir[i][1]; if (x < 0 || x >= 5 || y < 0 || y >= 5 || vis[x][y] || map[x][y]) continue; pathx[x][y] = t.x; pathy[x][y] = t.y; vis[x][y] = 1; Q.push(Node(x, y)); } } } void out(int x, int y) { if (x == 0 && y == 0) { printf("(%d, %d)\n", x, y); return ; } out(pathx[x][y], pathy[x][y]); printf("(%d, %d)\n", x, y); } int main() { init(); bfs(); out(4, 4); return 0; }
相关文章推荐
- tomcat7安装版项目无法部署的问题
- Java总结篇系列:Java多线程(三)
- 华为oj_24点游戏算法
- Fourier Transform Intro - Fourier inversion theorem
- C++primer第五版笔记-第十九章特殊工具与技术
- android基于百度云消息推送通知集成
- Java内存模型
- OpenStack存储:Cinder和Swift的解释
- linux文件查找命令find的应用
- 前景提取--SuBSENSE算法
- Enchantment Mixtures(区间DP)
- MYSQL explain详解
- POJ 3233
- UVA-1605 Building for UN (构造)
- 某android4.4手机的SystemUI
- sql学习一 主键,联合主键,外键、索引 ,分区
- UVA - 11624 Fire!(BFS)
- Java集合的优化
- Android Service完全解析
- C++primer第五版笔记-第十八章用于大型程序的工具