题目描述
自从LZY被大魔王抓走后,CYB成员们一直想尽方法找到他!
想要知道LZY的下落,只能破解出大魔王的密码。
现在给定一个二维网格和一个单词密码,找到该密码是否存在于网格中!
输入
题目有多组测试样例,第一行输入两个数字n 和 m,代表地图为n行m列,第二行需要查找的单词s,接下来有一个n*m的字符矩阵! (1 <= n, m <= 1000, 1 <= s.length() <= 100)

提示: 测试样例T (1 <= T <= 50)
输出
对于每个测试样例,在一行中输出是否能找到,如果是输出’True’, 否则输出’False’ (不包含单引号)
样例输入 Copy
3 4
ABCCED
ABCE
SFCS
ADEE
3 4
ABCB
ABCE
SFCS
ADEE
样例输出 Copy
True
False

  • 题意:找二维网格里有没有密码,不能重复
  • 首先循环找s[0] (密码的第一位),有的的话放进去跑dfs
  • 需要用到回溯,因为如果密码是ababababa,碰到ab就直接Ture了
#include<bits/stdc++.h>
using namespace std;
int n, m, flag;
string s, a[1005];
int vis[1005][1005];
int dir[4][2] = {{1,0},{0,1},{-1,0},{0,-1}};
void dfs(int x, int y, int len){if(len == s.size()){flag = 1;return ;}for(int i = 0; i < 4; i++){int tx = x + dir[i][0];int ty = y + dir[i][1];if(tx < 0 || ty < 0 || tx > n - 1 || ty > m - 1)continue;if(a[tx][ty] == s[len] && vis[tx][ty] == 0){vis[tx][ty] = 1;dfs(tx, ty, len + 1);vis[tx][ty] = 0;if(flag)return ;}}return ;
}
int main(){ios::sync_with_stdio(false);while(cin >> n >> m){memset(vis,0,sizeof(vis));cin >> s;for(int i = 0; i < n; i++)cin >> a[i];flag = 0;for(int i = 0; i < n; i++){for(int j = 0; j < m; j++){if(a[i][j] == s[0]){vis[i][j] = 1;dfs(i, j, 1);vis[i][j] = 0;}if(flag)break;}if(flag)break;}if(flag)cout << "True" << endl;else cout << "False" << endl;}return 0;
}

寻找丢失的LZY(dfs)相关推荐

  1. BZOJ 4043 [HAOI2015]树上操作 dfs序 线段树

    $ \Rightarrow $ 戳我进BZOJ原题 $ \Rightarrow $ 戳我进洛谷原题 [HAOI2015]树上操作 Time Limit: 10 Sec Memory Limit: 25 ...

  2. [JS][dfs]题解 | #迷宫问题#

    题解 | #迷宫问题# 题目链接 迷宫问题 题目描述 定义一个二维数组 N*M ,如 5 × 5 数组下所示: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 1, 1 ...

  3. [C] [编程题]连通块(DFS解决)

    时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 256M,其他语言512M 来源:牛客网 金山办公2020校招服务端开发工程师笔试题(一) 题目描述 给一个01矩阵,1代表是陆地,0代表 ...

  4. 【BZOJ2434】[NOI2011]阿狸的打字机 AC自动机+DFS序+树状数组

    [BZOJ2434][NOI2011]阿狸的打字机 Description 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机.打字机上只有28个按键,分别印有26个小写英文字母和'B'.'P ...

  5. usaco snail trails(dfs)

    dfs啊,我还写了好长时间,一天不如一天. /* ID:jinbo wu TASK: snail LANG:C++ */ #include<bits/stdc++.h> using nam ...

  6. usaco shuttle puzzle(dfs剪枝)

    这题一看我也以为找规律,然后无法下手之后又想到bfs最后看题解是用dfs大神dfs用的出神入化. 不过这题好像可以找规律. /* ID:jinbo wu TASK: shuttle LANG:C++ ...

  7. usaco street race(dfs)

    一开始我觉得很麻烦但第一题好做由于数据较小直接每个点删后dfs就可以了,第二问我不知道如何判断有没有公共的道路,最后看别人的也挺简单的就是看分别从两条公路的起点开始dfs如果他们能到达同一点就代表有公 ...

  8. Forest Program dfs+tanjar仙人掌

    题目链接 CCPC2019 F题. 题意:给一颗仙人掌树,让你求每一个小环的边的个数,用快速幂即可求解. 思路:第一反应是tanjar乱搞,把每个环上的点取出来,类似于缩点的方法.但是忽然感觉dfs能 ...

  9. HDU - 5877 Weak Pair 2016 ACM/ICPC 大连网络赛 J题 dfs+树状数组+离散化

    题目链接 You are given a rootedrooted tree of NN nodes, labeled from 1 to NN. To the iith node a non-neg ...

  10. A and B and Lecture Rooms CodeForces - 519E LCA+dfs序

    看到这个题的第一个思路就是就是统计以每一个点为根的所有节点个数,然后具体就分情况讨论一下即可. 因为刚刚学习了dfs序,这个题就用了dfs序来通过进出时间戳来相减表示其为根的子节点个数. 分情况 我们 ...

最新文章

  1. AutoCAD WS API发布【转】
  2. linux的Nginx安装、默认虚拟主机、用户认证、域名重定向配置介绍
  3. Hugging Face官方课程来了!Transformers库维护者之一授课,完全免费
  4. 记住,TCP是一种流协议
  5. 遇到事情不计较就是善待自己
  6. python groupby填充缺失值_熊猫中的Groupby,用[]填充缺失的组
  7. 【w3cschool】Linux命令简单复习
  8. Pulseaudio之load-module加载module-always-sink(十四)
  9. PHP设计模式——观察者模式
  10. .net 3.5 数据库开发 之 LINQ 上
  11. 了解STM32的内部FLASH空间
  12. 你一定要狠狠的幸福,那个凶丫头(2)
  13. 模块二、添加Customer 类
  14. 数字取证之Autopsy ——合天网安实验室学习笔记
  15. dim c语言,编程基础-C程序的组成
  16. 博客专家3月原创奖励
  17. MATLAB中实现特定像素区域处理
  18. 如何用python批量识别图片上的文字(二)
  19. 【元胞自动机】基于元胞自动机模拟双通道人群疏散含Matlab源码
  20. 解决rdlc报错 An error occurred during local report processing

热门文章

  1. MyBatis动态SQL
  2. 电信 IPRAN 设备组网方案_ZGQHBJ组网视频监测点组网方案
  3. 采访了 10 位身价过亿的 CEO,我终于看懂了有钱人的“奋斗”
  4. XZ_iOS 之开发者账号续费 你的支付授权失败 请核对你的信息并重试 或尝试其他支付方式 请联系你的银行了解更多信息
  5. Windows 启动jar程序
  6. 机器人翻译软件测试,对我国几种机器翻译软件译文质量的测评
  7. wireshark蓝牙数据包分析_Wireshark数据包分析
  8. 天和流量王v4.69官方版-2011最新绿色版(增加网站流量工具)
  9. 从零开始做运营-读书笔记一
  10. python3 安装 pillow报错