传送门

最近真的是越来越菜了

真的什么都做不起了

连搜索都不会了

可以把整个平面想象成很多张原始的图拼起来

因为可以在不同的图里面走

走到不同的图就相当于一个取模操作

而如果在不同的图中走到了同一个位置

那么也就是说可以这样无线走下去

所以我们给vis数组开三维

分别记录visit、原始(未取模)的x坐标、原始的y坐标

如果搜索到了一个已经vis过的点

而且不是同一个图的话

说明可以无线走下去了

// luogu-judger-enable-o2
#include<bits/stdc++.h>
using namespace std;
#define ll long long
inline int read(){char ch=getchar();int res=0;while(!isdigit(ch))ch=getchar();while(isdigit(ch)) res=(res<<3)+(res<<1)+(ch^48),ch=getchar();return res;
}
char x;
int n,m,kx,ky;
int vis[1505][1505][3];
char ch[1505][1505];
bool f;
const int fx[5]={0,-1,0,1,0};
const int fy[5]={0,0,1,0,-1};
char y;
inline int nxtx(int x,int k){if(x+fx[k]>n){return x+fx[k]-n;}if(x+fx[k]<=0){return x+fx[k]+n;}return x+fx[k];
}
inline int nxty(int y,int k){if(y+fy[k]>m){return y+fy[k]-m;}if(y+fy[k]<=0){return y+fy[k]+m;}return y+fy[k];
}
void dfs(int ax,int ay,int px,int py){if(f)return;if(vis[ax][ay][0]&&(vis[ax][ay][1]!=px||vis[ax][ay][2]!=py)){f=1;return;}vis[ax][ay][0]=1;vis[ax][ay][1]=px,vis[ax][ay][2]=py;for(int i=1;i<=4;i++){int gx=nxtx(ax,i),gy=nxty(ay,i);int lx=px+fx[i],ly=py+fy[i];if(ch[gx][gy]!='#'){if(!vis[gx][gy][0]||vis[gx][gy][1]!=lx||vis[gx][gy][2]!=ly)dfs(gx,gy,lx,ly);}}
}
int main(){int T=read();while(T--){f=false;n=read(),m=read();memset(vis,false,sizeof(vis));for(int i=1;i<=n;i++){scanf("%s",ch[i]+1) ;         for(int j=1;j<=m;j++){if(ch[i][j]=='S')kx=i,ky=j;}}dfs(kx,ky,kx,ky);if(f)cout<<"Yes"<<'\n';else cout<<"No"<<'\n';}
}

转载于:https://www.cnblogs.com/stargazer-cyk/p/10366445.html

洛谷1363——幻想迷宫(搜索)相关推荐

  1. 伪题解 洛谷 P1363 幻想迷宫(DFS)

    毒瘤题,做了一晚上抄题解A了 因为是抄题解,我也不好意思说什么了,就发篇博客纪念一下吧 #include<iostream> #include<cstring> #includ ...

  2. 洛谷 P1238 走迷宫【搜索】【DFS】

    洛谷 P1238 走迷宫 一.题目链接 二.题目分析 (一)算法标签 (二)解题思路 三.AC代码 四.其它题解 一.题目链接 洛谷 P1238 走迷宫 二.题目分析 (一)算法标签 搜索 DFS ( ...

  3. 洛谷 2921 记忆化搜索 tarjan 基环外向树

    洛谷 2921 记忆化搜索 tarjan 传送门 (https://www.luogu.org/problem/show?pid=2921) 做这题的经历有点玄学,,起因是某个random题的同学突然 ...

  4. 洛谷P1074 靶形数独 [搜索]

    题目传送门 题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他 们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教, Z 博士拿出了 ...

  5. 【洛谷】【博弈搜索】P4363 [九省联考2018]一双木棋chess

    洛谷 P4363 [九省联考2018]一双木棋chess 题目大意 ◇题目传送门◆ 分析 根据题目所给定的规则,可以发现对于每一行,其下面一行上放的棋子数目不可能多于上面的一行. 所以我们可以将每行上 ...

  6. 2019.03.04【ZJOI2018】【BZOJ5213】【洛谷P4339】迷宫(自动机)(数论)

    BZOJ传送门 洛谷传送门 解析: 这道题本质其实是要最小化一个能够接受所有mmm进制下KKK的倍数的自动机. 显然我们有一个方案就是KKK个节点,iii的第jjj条边向(i∗m+j)%K(i*m+j ...

  7. 洛谷 1363【幻想迷宫】

    (其实我不知道算原创还是转载) 题目大意: 现有一个无限大的迷宫,是由无限个n*m的相同矩阵单位组成的,迷宫中有路和墙.给出这个矩阵单位和起点,问能不能走到离起点无穷远的地方. 这题题目还是看懂了,但 ...

  8. python【洛谷算法题单-搜索】P1605 迷宫

    题目背景 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫中移动有上下左右四种方式,每次只能移 ...

  9. 洛谷P1141 01迷宫【记忆化搜索】

    题目链接:P1141 01迷宫 程序说明: 可以用bfs来做,但是数据毒瘤,如果每次询问都运行一次bfs,会有三个TLE..可以将路途经过的点储存起来并且记录答案,如果询问的点已经被记录了答案,直接输 ...

  10. 洛谷P1141 01迷宫

    因为各种乱七八糟的原因,学搜索实在是学了太久了也咕了好久博客啊.准备再做一遍之前写过的题顺便补一下博客qwq 01迷宫 [题目链接](https://www.luogu.org/problemnew/ ...

最新文章

  1. SAP MM 关于采购组设计的思考
  2. 1.4. Rosegarden
  3. 【C 语言】字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序字符串操作 | strncat 函数 )
  4. TP自动生成模块目录
  5. linux扫描hba卡命令,如何在redhat中查看HBA卡的信息
  6. python传送带和斐波那契
  7. Codeforces Round #703 (Div. 2) D . Max Median 二分 +思维
  8. java saxexception_SAXException
  9. R语言实现混频数据分析实例----midas回归预测
  10. phpcms2008里的if判断
  11. [SQL Server] Access和SQL Server的数据迁移
  12. jssip中文开发文档(完整版)
  13. arcgis js平滑线工具_Arcgis中文字体、平滑线插件使用说明
  14. 电脑服务器注册表,(恢复Windows服务器注册表的系统配置单元.doc
  15. Uva - 1589 - Xiangqi
  16. css 效果之并列排列
  17. (转)CGJ02、BD09、西安80、北京54、CGCS2000常用坐标系详解
  18. 实验九 使用异步方式实现文件读\写
  19. ipa 上传卡在鉴权_上传app,一直卡在“正在通过 App Store 进行鉴定”
  20. 关于列columns的一些配置

热门文章

  1. MySQL开启日志记录执行过的SQL语句
  2. opencv python 读取图像/显示图像/保存图像
  3. 五个步骤,搭建企业的“大数据视野”
  4. weblogic11g 密码忘记肿么办?
  5. eclipse(Kepler Service Release 2)问题记录
  6. 10行代码搞定移动web端自定义tap事件
  7. 【C语言】break,continue的区别
  8. 框架-数据库定义MD5加密
  9. Equinox MANIFEST.MF 中文处理 Bug
  10. Android 开发中常见的Eclipse排版设置