题意:求Joe走出迷宫的最短时间,有障碍,还有向四周蔓延的火

思路:将火的位置也加进BFS里面

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
const int MAXN = 1200;struct node{int x,y,f,t;
};
int dx[] ={1,-1,0,0};
int dy[] ={0,0,1,-1};
int vis[MAXN][MAXN],n,m;
char map[MAXN][MAXN];int check(node a){if (a.x >= 0 && a.x < n && a.y >= 0 && a.y < m)return 1;return 0;
}int main(){int t;scanf("%d",&t);while (t--){scanf("%d%d",&n,&m);for (int i = 0; i < n; i++)scanf("%s",map[i]);queue<node> q;node Joe;memset(vis,0,sizeof(vis));for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){if (map[i][j] == '#')vis[i][j] = 1;else if (map[i][j] == 'F'){vis[i][j] = 1;q.push((node){i,j,1,0});}else if (map[i][j] == 'J'){vis[i][j] = 1;Joe.x = i,Joe.y = j;Joe.f = 0,Joe.t = 0;}}}q.push(Joe);int ans = -1;while (!q.empty()){node u,v;u = q.front(),q.pop();for (int i = 0; i < 4; i++){v = u;v.t++;v.x += dx[i],v.y += dy[i];if (check(v)){if (vis[v.x][v.y])continue;vis[v.x][v.y] = 1;q.push(v);}else if (v.f == 0){ans = v.t;break;}}if (ans != -1)break;}if (ans == -1)printf("IMPOSSIBLE\n");else printf("%d\n",ans);}return 0;
}

UVA - 11624 Fire!相关推荐

  1. 【POJ3126 Prime Path】【POJ 3087 Shuffle'm Up】【UVA 11624 Fire!】【POJ 3984 迷宫问题】

    POJ3126Prime Path 给定两个四位素数a  b,要求把a变换到b 变换的过程要 每次变换出来的数都是一个 四位素数,而且当前这步的变换所得的素数  与  前一步得到的素数  只能有一个位 ...

  2. BFS(两点搜索) UVA 11624 Fire!

    题目传送门 1 /* 2 BFS:首先对火搜索,求出火蔓延到某点的时间,再对J搜索,如果走到的地方火已经烧到了就不入队,直到走出边界. 3 */ 4 /************************ ...

  3. UVA - 11624  Fire! 两次BFS

    UVA - 11624  Fire! Joe works in a maze. Unfortunately, portions of the maze have caught on fire, and ...

  4. UVA - 11624 - Fire!

    题目描述: 小明最后也没能进入游戏大厂,也没能娶到心爱的女孩,现在小明在一家迷宫里工作. 不幸的是,迷宫里因为线路老化而发生了火灾.小明现在需要一个逃跑路线,请你帮助倒霉的小明从迷宫中逃离出去吧 小明 ...

  5. Fire! UVA - 11624

    题目链接:Fire! UVA - 11624 =================================================== Fire Time Limit: 1000MS D ...

  6. J - Fire! UVA - 11624

    J - Fire! UVA - 11624 题意:火每次能烧到上下左右,人碰到非墙的边界则逃火成功,求最短的逃离时间. 由于bfs每个位置最多入队出队一次,所以复杂度为 1e6 一发bfs直接TLE, ...

  7. [kuangbin带你飞]专题1 简单搜索 J - Fire! UVA - 11624

    题目: Joe works in a maze. Unfortunately, portions of the maze have caught on fire, and the owner of t ...

  8. Fire uva 11624

    题目连接:http://acm.hust.edu.cn/vjudge/problem/28833 /* 首先对整个图bfs一次得到火焰燃烧的时刻表 之后在bfs搜路径时加一个火烧表的判断 坑点在于:如 ...

  9. UVa 11624,两次BFS

    题目链接:http://vjudge.net/contest/132239#problem/A 题目链接:https://uva.onlinejudge.org/external/116/11624. ...

最新文章

  1. svn(subversion)代码版本管理在linux下的一些常见使用命令
  2. 关于SAP物料的历史库存
  3. [html] html如何启动本地的exe应用?
  4. python中goto如何使用,基于python goto的正确用法说明
  5. 工厂模式(描述语言PHP)
  6. django debug=false后静态文件丢失_Django DEBUG=False后DEBUG=True带来的问题
  7. verifycode验证码模版
  8. 配置React-Native开发工具——WebStorm下载、激活与配置
  9. 通达信与飞狐不同函数的替代
  10. python导入鸢尾花数据集_python可视化分析鸢尾花数据集
  11. 古体字与简体字对照表_简体字与繁体字对照表
  12. ps快捷键大全(表格汇总)
  13. python 获取各pkg版本_Python pkg_resources.get_distribution方法代碼示例
  14. u-boot2020.04移植(1、u-boot的编译)
  15. 运维派网站数据迁移过程踩到的坑和教训
  16. 坐落尘世的繁华,幽眉清黛任花开花谢
  17. 数据分析-Excel简介
  18. NR RLC Protocol General and Procedure
  19. Django及Flask漏洞合集
  20. 在mysql中删除数据后,添加数据,id值依然从删除的位置开始增加,问题详解。

热门文章

  1. java如何去除噪点,消除黑白图像中的噪点
  2. MySql数据库优化可以从哪几个方面进行?
  3. 用友NC二次开发小技巧:服务端执行SQL语句的方法
  4. mysql的主句与从句_主句、从句、复合句
  5. mysql 树形结构_MySQL 树形结构数据库设计 | 剑花烟雨江南
  6. SparkSQL(1)-SQL/DataFrame/Datasets(course58)
  7. 半导体器件物理【18】非平衡过剩载流子习题
  8. 【DP】NOI题库 6049买书 4976硬币
  9. 封装navbar组件
  10. Linux解压指定单个文件