题目:Fire

先预处理出每个F蔓延的时间,再bfs走迷宫。

代码:

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <queue>
const int N=1005;
using namespace std;
struct pos
{
int x,y,s;
pos(int xx,int yy,int ss)
{
x=xx;y=yy;s=ss;
}
pos(){
}
}p;
char a[N][N];
int n,m,sx,sy,vis[N][N],b[N][N];
int nxt[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
queue < pos > q,q1;
void bfs()
{
while(!q1.empty())
{
pos p=q1.front();
q1.pop();
int x=p.x,y=p.y;
for(int i=0;i<4;i++)
{
int xx=x+nxt[i][0],yy=y+nxt[i][1];
if(xx<1 || xx>n || yy<1 || yy>m)
continue;
if(a[xx][yy]=='#')
continue;
if(vis[xx][yy]==-1 || p.s+1<vis[xx][yy])
vis[xx][yy]=p.s+1,q1.push(pos(xx,yy,p.s+1));
}
}
}
void solve()
{
memset(vis,-1,sizeof(vis));
memset(b,0,sizeof(b));
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%s",a[i]+1);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(a[i][j]=='J')
sx=i,sy=j;
else if(a[i][j]=='F')
vis[i][j]=0,q1.push(pos(i,j,0));
bfs();
while(!q.empty())
q.pop();
q.push(pos(sx,sy,0));
while(!q.empty())
{
pos p=q.front();
q.pop();
int x=p.x,y=p.y;
if(x==1 || y==1 || x==n || y==m)
{
printf("%d\n",p.s+1);
return ;
}
if(b[x][y])
continue;
b[x][y]=1;
for(int i=0;i<4;i++)
{
int xx=x+nxt[i][0],yy=y+nxt[i][1];
if(xx<1 || xx>n || yy<1 || yy>m)
continue;
if(a[xx][yy]=='#' || (vis[xx][yy]!=-1 && vis[xx][yy]<=p.s+1))
continue;
q.push(pos(xx,yy,p.s+1));
}
}
puts("IMPOSSIBLE");
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
solve();
return 0;
}

2022春每日一题:Day 7的更多相关文章

  1. 【Java每日一题】20170106

    20170105问题解析请点击今日问题下方的"[Java每日一题]20170106"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  2. 【Java每日一题】20170105

    20170104问题解析请点击今日问题下方的"[Java每日一题]20170105"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  3. 【Java每日一题】20170104

    20170103问题解析请点击今日问题下方的"[Java每日一题]20170104"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  4. 【Java每日一题】20170103

    20161230问题解析请点击今日问题下方的"[Java每日一题]20170103"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  5. 【Java每日一题】20161230

    // 20161229问题解析请点击今日问题下方的"[Java每日一题]20161230"查看(问题解析在公众号首发,公众号ID:weknow619)package Dec2016 ...

  6. 【Java每日一题】20161229

    package Dec2016; import java.util.ArrayList; import java.util.List; public class Ques1229 { public s ...

  7. 【Java每日一题】20161228

    package Dec2016; import java.util.ArrayList; import java.util.List; public class Ques1228 { public s ...

  8. 【Java每日一题】20161227

    package Dec2016; public class Ques1227 { public static void main(String[] args){ } { c = 1; } int c ...

  9. 【Java每日一题】20161226

    package Dec2016; public class Ques1226 { static{ num = 1; } public static int num = 2; public static ...

  10. 【Java每日一题】20161223

    package Dec2016; public class Ques1223 { public static void main(String[] args){ Integer obj = Integ ...

随机推荐

  1. 第三十三篇:关于ES6,JSON和Webpack

    好家伙 1.什么是ES6? ECMAScript是javascript标准 ES6就是ECMAScript的第6个版本 (大概是一个语法标准规范) 2.什么是JSON? JSON 是什么,在数据交换中 ...

  2. Mysql_索引总结笔记

    Mysql 索引总结 1. 聚簇索引 InnoDB 引擎使用的就是聚簇索引,就是主键的索引,是一种数据的存储方式.所有的数据都是存储在索引的叶子结点上(与MySAM 引擎不同,MySAM是传统方式), ...

  3. Git Bash(提交文件到GitHub进行托管)

    ​ Introduction 使用Git Bash命令,可以将一个项目上传到Github官网中,进行托管,避免重要文件被误删 1.Git工具下载 Git for Windows 2.在github中新 ...

  4. Java中的引用概念

    Java对对象和基本的数据类型的处理是不一样的.和C语言一样,当把Java的基本数据类型(如int,char,double等)作为入口参数传给函数体的时候,传入的参数在函数体内部变成了局部变量,这个局 ...

  5. 一文带你体验MRS HetuEngine如何实现跨源跨域分析

    摘要: HetuEngine作为MRS服务中交互式分析&多源统一SQL引擎,亲自全程体验其如何实现多数据源的跨源跨域分析能力. 本文分享自华为云社区<MRS HetuEngine体验跨源 ...

  6. 通过helm搭建Harbor

    文章转载自:http://www.mydlq.club/article/66/ 系统环境: kubernetes 版本:1.20.1 Traefik Ingress 版本:2.4.3 Harbor C ...

  7. “kill -9”一时爽,秋后算账泪两行

    接受两个参数.第一个参数是pid,第二个参数是等待的秒数. #!/bin/bash # 接受两个参数.第一个参数是pid,第二个参数是等待的秒数. pid=$1 count=$2 n=0 if [ ! ...

  8. CentOS 7 firewalld 配置详解

    1.在CentOS 7里有几种防火墙共存:firewalld.iptables.ebtables. 默认是使用firewalld来管理netfilter子系统,不过底层调用的命令仍然是iptables ...

  9. 内网横向渗透 之 ATT&CK系列一 win7的yxcms

    Yxcms渗透 前言 通过phpMyAdmin慢日志查询Getshell后,蚁剑连接,发现win7下面还有个cms靶场,于是就兴致勃勃的去打了一波. cms渗透 进入页面后,搜刮了页面所有可见信息,发 ...

  10. jmeter录制登录脚本

    1.添加代理服务器 在非测试元件添加http代理服务器,端口写8888,域写127.0.0.1 在排除模式里填入.*.(js|css|PNG|jpg|ico|png|gif|woff|ttf).* 2 ...