G - BFS广搜
来源:互联网 发布:sqlserver 2008 2012 编辑:程序博客网 时间:2024/04/28 12:20
代码:
#include<iostream>#include<string>#include<queue>using namespace std;struct P{int x;int y;int count;}pr,pa, p;char map[210][210];int dis[210][210];queue<P> prs;int cou = 99999;int n, m;int f[4][2] = { 0, 1, 1, 0, -1, 0, 0, -1 };void bfs(){while (!prs.empty()){pr = prs.front();prs.pop();if (pr.x == pa.x && pr.y == pa.y){if (cou > pr.count){cou = pr.count;}}else{for (int i = 0; i < 4; ++i){p.x = pr.x + f[i][0];p.y = pr.y + f[i][1];p.count = pr.count + 1;if (p.x >= 0 && p.x < n && p.y >= 0 && p.y < m && map[p.x][p.y] != '#' && p.count < dis[p.x][p.y]){if (map[p.x][p.y] == 'x'){p.count++;}if (dis[p.x][p.y] > p.count){dis[p.x][p.y] = p.count;}prs.push(p);}}}}}int main(){while (cin >> n >> m){cou = 99999;for (int i = 0; i < n; ++i){for (int j = 0; j < m; ++j){dis[i][j] = 99999;cin >> map[i][j];if (map[i][j] == 'a'){pa.x = i;pa.y = j;}else if (map[i][j] == 'r'){pr.x = i;pr.y = j;pr.count = 0;prs.push(pr);}}}bfs();if (cou == 99999){cout << "Poor ANGEL has to stay in the prison all his life." << endl;}else{cout << cou << endl;}}return 0;}
0 0
- G - BFS广搜
- bfs(广搜)
- 广搜模版BFS
- 【bfs(广搜)模板】
- POJ 1426 广搜BFS
- 广搜BFS 迷宫问题
- hdu2717(裸bfs广搜)
- bfs广搜:打印路径
- 迷宫问题(广搜 bfs)
- hdu1548(BFS广搜入门)
- BFS(广搜) 救援
- Bfs广搜 HDU - 2612
- HDU5012 Dice(广搜BFS)
- 广搜BFS prime path+广搜总结
- HDOJ 1372 Knight Moves(BFS 广搜)
- hdu1195 Open the Lock BFS 广搜
- poj-1011-Sticks(广搜bfs)
- POJ3278 Catch That Cow(广搜BFS)
- 网站设计配色笔记(一)
- Spring定时任务的几种实现及部分模板
- android app启动过程
- Android音频底层调试-基于tinyalsa
- CSS3 颜色值RGBA表示方式
- G - BFS广搜
- qt中文乱码问题
- Ubuntu command 记录 02
- IOS控件学习之UIScrollView(3)
- ZOJ 1100Mondriaan's Dream
- 将博客搬至CSDN
- C++第2次上机实验-C++程序的编写和运行
- iOS APP提交上架最新流程
- Linux随心笔记之用户的概念