[kuangbin带你飞]专题一 简单搜索 J UVA 11624
来源:互联网 发布:手卷钢琴软件 编辑:程序博客网 时间:2024/06/06 00:12
题目地址:https://vjudge.net/contest/65959#problem/J
思路:先将火在的位置入队保证火先走,人再走,这样就保证人走的位置一定没火。如果人走到了边界,bfs结束。有个坑就是火会有好多个地方有,而不是只有一团火。
AC代码:
#include<bits/stdc++.h>using namespace std;const int maxn=1000+10;char ma[maxn][maxn];int t,r,c;bool vis[maxn][maxn];bool vis1[maxn][maxn];int xx[4]={-1,0,1,0};int yy[4]={0,-1,0,1};struct pos{ int x,y,s,p;};pos J;int main(){ scanf("%d",&t); while(t--) { scanf("%d%d",&r,&c); memset(vis,false,sizeof(vis)); memset(vis1,false,sizeof(vis1)); for(int i=0;i<r;i++) { scanf("%s",ma[i]); for(int j=0;j<c;j++) { if(ma[i][j]=='J') { J.x=i,J.y=j,J.s=0,J.p=1; vis1[i][j]=true; } } } queue<pos>q; for(int i=0;i<r;i++) for(int j=0;j<c;j++) { if(ma[i][j]=='F') { vis[i][j]=true; q.push(pos{i,j,0,0}); } } q.push(J); int temp=0; while(!q.empty()) { pos now=q.front(); q.pop(); if(!now.p)//火 { for(int i=0;i<4;i++) { int tempx=now.x+xx[i]; int tempy=now.y+yy[i]; if(tempx>=0 && tempx<r &&tempy>=0 &&tempy<c) if(!vis[tempx][tempy] && ma[tempx][tempy]!='#') { vis[tempx][tempy]=true; q.push(pos{tempx,tempy,now.s+1,0}); } } } else { for(int i=0;i<4;i++) { int tempx=now.x+xx[i]; int tempy=now.y+yy[i]; if(tempx<0 || tempx>=r || tempy<0 || tempy>=c) { temp=1; printf("%d\n",now.s+1); break; } if(!vis[tempx][tempy] && !vis1[tempx][tempy] && ma[tempx][tempy]!='#') { vis1[tempx][tempy]=true; q.push(pos{tempx,tempy,now.s+1,1}); } if(temp) break; } } } if(!temp) printf("IMPOSSIBLE\n"); }}
0 0
- [kuangbin带你飞]专题一 简单搜索J - Fire!(UVA 11624)
- [kuangbin带你飞]专题一 简单搜索 J - Fire! UVA 11624
- [kuangbin带你飞]专题一 简单搜索 J UVA 11624
- [kuangbin带你飞]专题一 简单搜索-J - Fire!
- [kuangbin带你飞]专题一 简单搜索 J
- UVA 11624 Fire!(kuangbin带你飞 专题一:简单搜索)
- UVA 11624 Fire! ([kuangbin带你飞]专题一 简单搜索)
- [kuangbin神带你飞]专题一 简单搜索
- kuangbin带你飞 专题一 简单搜索 (题解)
- Fire Game [kuangbin带你飞]专题一 简单搜索
- [kuangbin带你飞]专题一 简单搜索 总结
- Kuangbin带你飞专题一 简单搜索
- [kuangbin带你飞]专题一 简单搜索 D - Fliptile
- [kuangbin带你飞]专题一 简单搜索 - H - Pots
- [kuangbin带你飞]专题一 简单搜索 A POJ1321
- [kuangbin带你飞]专题一 简单搜索 B POJ2251
- [kuangbin带你飞]专题一 简单搜索 C POJ3278
- [kuangbin带你飞]专题一 简单搜索 D poj3279
- u-boot makefile 分析(以mini2440为例)
- Alpha-expansion and Alpha-beta-swap Algorithm Flow
- 247_设置全屏
- MongoDB 3.0 用户创建
- Swift REPL简介
- [kuangbin带你飞]专题一 简单搜索 J UVA 11624
- 给一棵搜索二叉树,然后给出一个从跟到叶节点的最短的路径之和。
- java正则表达式 匹配文本中的网址
- 1-3.linux下安装JDK(Hadoop系列day01)
- 248_拿到AndroidManifest配置文件里面的 meta-data
- 漫步线性代数二十三——行列式公式
- 二叉搜索树的第k个结点
- 冒泡排序
- 灰度发布系统的实现