DFS-矩阵内找环

该博客讨论了如何使用深度优先搜索(DFS)来判断一个给定的字母矩阵中是否存在环。通过遍历矩阵并标记已访问的元素,当遇到已标记的元素时,表示存在环。文章提供了一些示例输入和输出,并强调了处理回头路径时的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

给出一个矩阵,判断矩阵内的字母能否成环

INPUT:

第一行2个整数n,m(n,m<50) 表示矩阵的行列   

下面n行 给出字母矩阵

OUTPUT:

有环输出Yes,否则输出No 

案例输入1:

3 4
AAAA
ABCA
AAAA

案例输出1:

Yes

案例输入2:

3 4
AAAA
ABCA
AADA

案例输出2:

No

案例输入3:

4 4
YYYR
BYBY
BBBY
BBBY

案例输出3:

Yes  (4/6个B字母能成一个环)

基本思想:

 遍历每个字母, 沿着字母走,走过的标记一下,如走到标记过的字母,则表示能成环;

易错:回头的处理, 走的下一步 一定不能是上一步的位置

代码如下:

#include <bits/stdc++.h>
using namespace std;
const int MAX=52;

char a[MAX][MAX];
int vis[MAX][MAX];  //用作标记的二维数组 
int n,m;
int dx[]={0,1,0,-1},dy[]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值