萌新求助,思路能懂,但找了很久都没找到哪里循环出不去。

P1363 幻象迷宫

~~洛谷萌新皆巨佬~~
by Pisces @ 2019-09-17 18:28:31


代码传错了。。 现在问题是为啥测试数据中第二组会输出yes ```cpp #include<iostream> #include<cstdio> #include<cstring> using namespace std; char a[102][102]; bool b[102][102]; int n,m; bool yes; int xx[5]={0,1,-1,0,0}; int yy[5]={0,0,0,1,-1}; int zouni(int x,int y) { if(yes==1) return 0; b[x][y]=1; for(int i=1;i<=4;i++) { int xn,yn; xn=x+xx[i]+n; yn=y+yy[i]+n; if(b[xn%n][yn%m]==1) yes=1; if(yes==1) return 0; if(a[xn%n][yn%m]=='S'||a[xn%n][yn%m]=='.') { zouni(xn%n,yn%m); } } return 0; } int main() { while(1) { int x=0,y=0; yes=0; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); cin>>n>>m; for(int i=0;i<n;i++) for(int j=0;j<m;j++) { cin>>a[i][j]; int x,y; if(a[i][j]=='S') { x=i; y=j; } } zouni(x,y); if(yes==1) cout<<"Yes"<<endl; else if(yes==0) cout<<"No"<<endl; } return 0; } ```
by 190040257a @ 2019-09-18 17:09:31


|