Untitled

public
6shootingstar9 Apr 10, 2025 Never 33
Clone
Plaintext paste1.txt 79 lines (79 loc) | 1.02 KB
1
#include<bits/stdc++.h>
2
using namespace std;
3
const int N=510;
4
int H,W;
5
char mp[N][N];
6
int vis[N][N];
7
int dx[4]={1,-1,0,0};
8
int dy[4]={0,0,1,-1};
9
bool flag=1;
10
void dfs(int x,int y,char now_char)
11
{
12
if(!flag)
13
{
14
return;
15
}
16
if(x==H&&y==W)
17
{
18
cout<<"Yes";
19
flag=0;
20
return;
21
}
22
if(now_char=='s')
23
{
24
now_char='n';
25
}
26
else if(now_char=='n')
27
{
28
now_char='u';
29
}
30
else if(now_char=='u')
31
{
32
now_char='k';
33
}
34
else if(now_char=='k')
35
{
36
now_char='e';
37
}
38
else if(now_char=='e')
39
{
40
now_char='s';
41
}
42
else
43
{
44
return;
45
}
46
for(int i=0;i<4;i++)
47
{
48
int xx=x+dx[i];
49
int yy=y+dy[i];
50
if(xx>0&&yy>0&&xx<=H&&yy<=W&&mp[xx][yy]==now_char&&vis[xx][yy]==0)
51
{
52
vis[xx][yy]=1;
53
dfs(xx,yy,now_char);
54
vis[xx][yy]=0;
55
}
56
}
57
}
58
int main()
59
{
60
cin>>H>>W;
61
for(int i=1;i<=H;i++)
62
{
63
for(int j=1;j<=W;j++)
64
{
65
cin>>mp[i][j];
66
}
67
}
68
if(mp[1][1]!='s')
69
{
70
cout<<"No";
71
return 0;
72
}
73
dfs(1,1,mp[1][1]);
74
if(flag)
75
{
76
cout<<"No";
77
}
78
return 0;
79
}