题意:问两个迷宫是否存在公共最短路。

题解:两个反向bfs建立层次图,一遍正向bfs寻找公共最短路

#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
const int maxn = 500+1;int d1[maxn][maxn];
int d2[maxn][maxn];char g1[maxn][maxn];
char g2[maxn][maxn];int n,m;
struct node{int x,y;node(int X = 0, int Y = 0){x = X; y = Y;}
};int dx[] = {1,-1,0,0};
int dy[] = {0,0,1,-1};
//1,1
void rbfs(int id)
{char (*G)[maxn];int (*vis)[maxn];if(id == 1) G = g1, vis = d1;else G = g2, vis = d2;memset(vis,-1,sizeof(d1));queue<node>q;node u(n-1,m-1);q.push(u);vis[u.x][u.y] = 0;while(q.size()){u = q.front();q.pop();if(u.x == 0 && u.y == 0) return;for(int i = 0; i < 4; i++){int nx = u.x + dx[i], ny = u.y + dy[i];if(nx>=0&&nx<n&&ny>=0&&ny<m&&G[nx][ny]!='#'&&!~vis[nx][ny]){vis[nx][ny] = vis[u.x][u.y]+1;q.push(node(nx,ny));}}}
}
bool vis[maxn][maxn];bool bfs()
{if(d1[0][0] != d2[0][0] )return false;memset(vis,0,sizeof(vis));queue<node>q;q.push(node(0,0));int tx = n-1, ty = m-1;while(q.size()){node &u = q.front();if(u.x == tx && u.y == ty) return true;for(int i = 0; i < 4; i++){int nx = u.x + dx[i], ny = u.y + dy[i];if(nx>=0&&nx<n&&ny>=0&&ny<m&&d1[nx][ny] == d1[u.x][u.y] - 1 && d2[nx][ny] == d2[u.x][u.y] - 1 && !vis[nx][ny]){vis[nx][ny] = 1;q.push(node(nx,ny));}}q.pop();}return false;
}int main()
{// freopen("in.txt","r",stdin);scanf("%d%d",&n,&m);for(int i = 0; i < n; i++)scanf("%s",g1[i]);for(int i = 0; i < n; i++)scanf("%s",g2[i]);rbfs(1);rbfs(2);printf("%s\n",bfs()?"YES":"NO");return 0;
}

转载于:https://www.cnblogs.com/jerryRey/p/4658378.html

CF Gym 100187E Two Labyrinths (迷宫问题)相关推荐

  1. CF Gym 100227 I题 题解

    这场Gym全名是这个:2013-2014 CT S01E01: Extended 2000 ACM-ICPC East Central North America Regional Contest ( ...

  2. Caravan Robbers CF Gym - 100134C

    https://cn.vjudge.net/problem/Gym-100134C http://codeforces.com/gym/100134/attachments 答案就是最小的min(bi ...

  3. CF Gym 101630 B Box

    题目的意思大概就是给一个长方体的长宽高,问他能不能用一个w*h的纸剪出来,就是说展开图的长宽能不能比给定的小. 题目给了11中展开图的拓扑结构,我觉得这个很关键,要是题目没有给这个我可能想不到那么全面 ...

  4. CF GYM 100703G Game of numbers

    题意:给n个数,一开始基数为0,用这n个数依次对基数做加法或减法,使基数不超过k且不小于0,输出最远能运算到的数字个数,输出策略. 解法:dp.dp[i][j]表示做完第i个数字的运算后结果为j的可能 ...

  5. 【CF gym 103260】40th Petrozavodsk Programming Camp, Day 5,2021.2.3 水题2题

    M.Discrete Logarithm is a Joke 题意: 思路: 不难想到an=g^{an+1},因为样例给了 a[1000000]的值,所以反着推就行了. 记得开int128,longl ...

  6. cf Gym 101086M ACPC Headquarters : AASTMT (Stairway to Heaven)

    题目: Description standard input/output As most of you know, the Arab Academy for Science and Technolo ...

  7. CF Gym 100685A Ariel

    传送门 A. Ariel time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

  8. cf gym 102785

    日常训练系列~ 本人在成功的过了三题后完美摸鱼 然后 然后终榜上就真的只过了三题 哭唧唧 传送门 a.A lazy controller:签到题,给n组数据,每组数据有a b两个数构成,如果b不是a的 ...

  9. cf gym/103821 (Aleppo + HAIST + SVU + Private) CPC 2022

    A   Laser Tag 题解:可以发现,我们此时的操作是将一段区间(不含端点)假如有数的话,就将其整体删除并在左右端点处加上1,根据我们学习的数据结构,其中有一个比较符合这种操作:珂朵莉树,也叫老 ...

最新文章

  1. netty 粘包的解决策略
  2. 以SYSTEM用户运行CMD
  3. 程序员分析报告(2018)-总结篇
  4. 我的世界python俄罗斯方块手机版下载_欢乐俄罗斯方块
  5. php 商品规格笛卡尔积,PHP 求多个数组的笛卡尔积,适用于求商品规格组合【原创】...
  6. 专访uPlane陈宏强:手机遥控固定翼飞机还是蓝海
  7. keil MDK中如何生成*.bin格式的文件
  8. 在ccs中添加芯片_985博导团队重大成果,涉及隐私保护领域,已在腾讯与京东、快手的业务中应用...
  9. 为什么构造函数不能声明为虚函数?
  10. 昂达v891w可以用u盘linux,昂达V891W CH Windows10(TH2)系统镜像(适用于V1版本)下载...
  11. PSX 610G 使用说明书
  12. 使用secureCRT运行VBScript脚本,自动执行操作教程
  13. windwos11 小爱音箱链接上但是没有声音
  14. modbus RTU 与OPC-UA、OPC-DA、MQTT协议区别对比
  15. win10中修改mac地址(总有一款适合你)
  16. 苹果从中国赚六百多亿美元,却在转移生产线,该减轻对它的依赖了
  17. 前端js实现京东轮播图
  18. Java项目:医院管理系统(java+SSM+layui+maven+mysql)
  19. 稳定性全系列(二)——如何做线上全链路压测
  20. 为什么微软拼音会莫名其妙变繁体以及Junit的一些笔记

热门文章

  1. linux内核模块编译
  2. 程序员必备的代码审查(Code Review)清单
  3. hdu4454 三分 求点到圆,然后在到矩形的最短路
  4. 汇编 加法减法指令 inc dec add sub neg 标志寄存器测试
  5. 【C 语言】文件操作 ( 按照单个字符的方式读写文件 | fgetc 函数 | fputc 函数 )
  6. 【Android 文件管理】应用可访问的存储空间 ( 存储空间分类 | 存储空间访问权限 | 分区存储 )
  7. 【集合论】二元关系 ( A 上二元关系 | A 上二元关系示例 )
  8. 【计算理论】Pumping 引理 ( 四个等价概念 | 自动机界限 | Pumping 引理简介 | Pumping 引理证明正则表达式 | Pumping 引理示例分析 )
  9. 【数据挖掘】贝叶斯分类 ( 贝叶斯分类器 | 贝叶斯推断 | 逆向概率 | 贝叶斯公式 | 贝叶斯公式推导 | 使用贝叶斯公式求逆向概率 )
  10. luogu P1199 【三国游戏】