Fire uva 11624
题目连接:http://acm.hust.edu.cn/vjudge/problem/28833
/*
首先对整个图bfs一次得到火焰燃烧的时刻表
之后在bfs搜路径时加一个火烧表的判断
坑点在于:如果时刻表等于0应该是从未烧过。。。如果不加以区分就会wa
*/
#include <bits/stdc++.h>
#define scan(x) scanf("%d",&x)
#define M(x) memset(x,0,sizeof(x))
#define REF(i,n) for(int i=1;i<=n;i++)
using namespace std;
const int Max=1e3+;
char mat[Max][Max];
int book[Max][Max];
int vis[Max][Max];
int n,m,stx,sty;
struct node
{
int x,y,step;
node(){x=y=step=;}
node(int xx,int yy,int ss):x(xx),y(yy),step(ss){}
};
int nex[][]={,,,,,-,-,};
queue<node>que1;
void bfs1()
{
M(book);M(vis);
node u,v;
while(!que1.empty())
{
u=que1.front();
que1.pop();
for(int k=;k<;k++)
{
v.x=u.x+nex[k][];
v.y=u.y+nex[k][];
v.step=u.step+;
if(v.x<||v.y<||v.x>n||v.y>m) continue;
if(mat[v.x][v.y]=='#') continue;
if(book[v.x][v.y]) continue;
book[v.x][v.y]=v.step;
que1.push(v);
}
}
}
int bfs2()
{
M(vis);
queue<node>que;
node u,v;
que.push(node(stx,sty,));
vis[stx][sty]=;
while(!que.empty())
{
u=que.front();
que.pop();
for(int k=;k<;k++)
{
v.x=u.x+nex[k][];
v.y=u.y+nex[k][];
v.step=u.step+;
if(v.x<||v.y<||v.x>n||v.y>m) return v.step;
if(book[v.x][v.y]!=&&book[v.x][v.y]<=v.step) continue;//book[i][j]!=0
if(mat[v.x][v.y]=='#'||mat[v.x][v.y]=='F') continue;//不能把从未着火的点也排除
if(vis[v.x][v.y]) continue;
vis[v.x][v.y]=;
que.push(v);
}
}
return -;
}
int main()
{
int T;
for(scan(T);T;T--)
{
cin>>n>>m;getchar();
while(!que1.empty()) que1.pop();
REF(i,n)
{
REF(j,m)
{
scanf("%c",&mat[i][j]);
if(mat[i][j]=='J') stx=i,sty=j;
if(mat[i][j]=='F') que1.push(node(i,j,));
}
getchar();
}
bfs1();
int ans=bfs2();
if(ans!=-) cout<<ans<<endl;
else cout<<"IMPOSSIBLE"<<endl;
}
return ;
}
Fire uva 11624的更多相关文章
- E - Fire! UVA - 11624(bfs + 记录火到达某个位置所需要的最小时间)
E - Fire! UVA - 11624 题目描述 乔在迷宫中工作.不幸的是,迷宫的一部分着火了,迷宫的主人没有制定火灾的逃跑计划.请帮助乔逃离迷宫.根据乔在迷宫中的位置以及迷宫的哪个方块着火,你必 ...
- J - Fire!---UVA 11624
题目链接 题意:J代表Joe的位置,F代表火的起点,下一刻火将会向四周扩散,求Joe逃离的最短时间,如果不能逃离输出IMPOSSIBLE; 注意火的起点可能不止一处 可以用两次bfs分别求出人到达某个 ...
- Fire! UVA - 11624 (两步bfs)
题目链接 题意 人要从迷宫走出去,火会向四个方向同时扩散 分析 两步bfs,先出火到达各地时的时间(设初始时间为0,人每走一步为1s,在着一步内火可以向四周可触及的方向同时扩散),然后在bfs人,人能 ...
- kuangbin专题 专题一 简单搜索 Fire! UVA - 11624
题目链接:https://vjudge.net/problem/UVA-11624 题意:一个迷宫,可能有一个或者多个地方着火了,每过1个时间消耗,火会向四周蔓延,问Joe能不能逃出迷宫,只要走出迷宫 ...
- UVa 11624 Fire!(着火了!)
UVa 11624 - Fire!(着火了!) Time limit: 1.000 seconds Description - 题目描述 Joe works in a maze. Unfortunat ...
- UVA - 11624 Fire! bfs 地图与人一步一步先后搜/搜一次打表好了再搜一次
UVA - 11624 题意:joe在一个迷宫里,迷宫的一些部分着火了,火势会向周围四个方向蔓延,joe可以向四个方向移动.火与人的速度都是1格/1秒,问j能否逃出迷宫,若能输出最小时间. 题解:先考 ...
- BFS(两点搜索) UVA 11624 Fire!
题目传送门 /* BFS:首先对火搜索,求出火蔓延到某点的时间,再对J搜索,如果走到的地方火已经烧到了就不入队,直到走出边界. */ /******************************** ...
- UVA 11624 UVA 10047 两道用 BFS进行最短路搜索的题
很少用bfs进行最短路搜索,实际BFS有时候挺方便得,省去了建图以及复杂度也降低了O(N*M): UVA 11624 写的比较挫 #include <iostream> #include ...
- UVA 11624 - Fire! 图BFS
看题传送门 昨天晚上UVA上不去今天晚上才上得去,这是在维护么? 然后去看了JAVA,感觉还不错昂~ 晚上上去UVA后经常连接失败作死啊. 第一次做图的题~ 基本是照着抄的T T 不过搞懂了图的BFS ...
随机推荐
- 使用Python来对MySQL数据库进行操作
使用Python对Mysql进行操作,前提是安装了python-Mysql的安装包,安装的方法有多种,可以使用easy_install或者pip 或者是源码进行安装. 下面介绍下如何使用Python ...
- 加密和ssl机制细节
1.1 背景知识 对称加密:加密解密使用同一密钥,加解密速度快.随着人数增多,密钥数量急增n(n-1)/2 非对称加密:使用公私钥配对加解密,速度慢.公钥是从私钥中提取出来的,一般拿对方公钥加密来保证 ...
- IconFont字体制作
1. 第一步.准备svg格式图片 2. 登陆http://iconfont.cn/网站,上传图标. 3. 选中需要制作成iconfont的图标. 4. 将选中的图标转储为项目 5. 下载至本地. 6. ...
- 现成的HTML5框架
1>sencha-touch 2>phoneGap 3>jQuery mobile 4>bootstrap
- 循序渐进Python3(五) -- 初识模块
什么是模块? 模块,用一组代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能 ...
- An unknown error occurred & “”的 iPhone is busy: Processing symbol files
An unknown error occurred & ""的 iPhone is busy: Processing symbol files An unknown err ...
- 初识ASP.NET CORE:一、HTTP pipeline
完整的http请求在asp.net framework中的处理流程: Asp.Net HttpRequest--> HTTP.exe--> inetinfo.exe(w3wp.exe)-& ...
- background-orgin属性
重点内容是:背景的显示范围是在元素的内边距之内的,如果要想改变显示范围,可以使用background-orgin和background-clip进行调整. (1)background-orgin有三个 ...
- bootstrap的日期插件datetimepicker有问题
bootstrap的日期插件datetimepicker在chrome中会出现掉下来的现象,而且一直没找到原因,下载最新版的插件直接在各个浏览器中都会掉下来, 问题一直解决不了,转而换其他插件 htt ...
- CK13物料价格评估的数据ALV显示
*&---------------------------------------------------------------------* *& Report ZPP023 * ...