Blued @ 2022-10-10 16:38:18
(悲
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 150;
bool vis[N][N];
int n , m;
char a[N][N];
void dfs(int x , int y)
{
if(x < 0 || x >= n || y < 0 || y >= n)
return ;
if(a[x][y] == '#')
return ;
if(vis[x][y])
return ;
vis[x][y] = true;
dfs(x - 1 , y);
dfs(x + 1 , y);
dfs(x , y - 1);
dfs(x , y + 1);
}
main()
{
cin >> n >> m;
for(int i = 0;i < n;i ++)
cin >> a[i];
dfs(0 , 0);
// for(int i = 0;i < n;i ++)
// for(int j = 0;j < n;j ++)
// if(vis[i][j])
// cout << i << ' ' << j << '\n';
if(vis[n - 1][m - 1])
puts("Yes");
else
puts("No");
return false;
}
by Axxx @ 2022-10-10 16:40:54
if(x < 0 || x >= n || y < 0 || y >= n)
应改成:
if(x < 0 || x >= n || y < 0 || y >= m)
因为是
by ImposterAnYu @ 2022-10-10 16:46:40
if(x < 0 || x >= n || y < 0 || y >= n)
y >= n
要改成 y >= m
,因为这个迷宫是
by Zelensky @ 2022-10-10 17:14:10
@star_and_her
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 150;
bool vis[N][N];
int n , m;
char a[N][N];
void dfs(int x , int y)
{
if(x < 0 || x >= n || y < 0 || y >= m)
return ;
if(a[x][y] == '#')
return ;
if(vis[x][y])
return ;
vis[x][y] = true;
dfs(x - 1 , y);
dfs(x + 1 , y);
dfs(x , y - 1);
dfs(x , y + 1);
}
main()
{
cin >> n >> m;
for(int i = 0;i < n;i ++)
for(int j=0;j<m;j++)
cin >> a[i][j];
dfs(0 , 0);
// for(int i = 0;i < n;i ++)
// for(int j = 0;j < n;j ++)
// if(vis[i][j])
// cout << i << ' ' << j << '\n';
if(vis[n - 1][m - 1])
puts("Yes");
else
puts("No");
return false;
}
二十毫秒比我广搜都快
by Zelensky @ 2022-10-10 17:15:18
@Zelensky 口胡了,20ms