BBY123 @ 2022-09-02 18:30:42
#include<bits/stdc++.h>
using namespace std;
char a[100][100];
int v[100][100];
int dx[10]={0,1,0,-1},dy[10]={1,0,-1,0};
int tx,ty,m,n,cnt=0;
void dfs(int x,int y){
if(x==n&&y==m){
cnt=1;
return;
}
for(int k = 0;k < 4;k++){
tx=x+dx[k];
ty=y+dy[k];
if(a[tx][ty]=='.'&&v[tx][ty]==0&&tx<=n&&ty<=m){
v[tx][ty]=1;
dfs(tx,ty);
v[tx][ty]=0;
}
}
}
int main(){
cin>>n>>m;
for(int i = 1;i <= n;i++){
for(int j = 1;j <= m;j++){
cin>>a[i][j];
}
}
dfs(1,1);
if(cnt==1){
cout<<"Yes";
}
else{
cout<<"No";
}
return 0;
}
by WaltVBAlston @ 2022-09-02 18:33:53
@BBY123 两个问题,第一个比较要紧,数组开小了,开大一点就可以了
第二个就是v数组不用回溯设置回0,原因先自己想一下可以
by WaltVBAlston @ 2022-09-02 18:41:07
@BBY123 对您有用的话就请鸟我一下吧,不然显得我是个小丑
by BBY123 @ 2022-09-02 18:42:09
谢谢了,大恩大德无以回报,请受本蒟蒻一拜 三克油!!! (更感谢您的速度,3分钟就回帖了,真是功德无量!!!)
by WaltVBAlston @ 2022-09-02 18:45:06
@BBY123 草不至于,只是我回复一堆人没人鸟我搞得我都不知道你们看到了没有,显得我很没用
by BBY123 @ 2022-09-02 18:46:25
可能是没来得及看吧, 心态要好。
by WaltVBAlston @ 2022-09-02 18:48:34
@BBY123 嗯嗯
by to_be_an_expert @ 2023-02-22 17:31:04
刚开始着手算法,能麻烦解释一下为什么这一行“ int dx[10]={0,1,0,-1},dy[10]={1,0,-1,0};”这样写吗?
by willix @ 2023-04-19 18:21:02
@to_be_an_expert 这玩意的作用就是向四个方向探索的时候可以更方便的+1和-1,本质上就是个偷懒的东西,你也不希望代码又臭又长吧(