求助luogu的各位大大大佬们

回复帖子

@新时代的黑客 2019-05-04 13:08 回复

为何会错啊!?

#include<bits/stdc++.h>
using namespace std;
int n,m,x,y,ok,n1,m1;
char a[1505][1505];
const int dx[4]= {1,-1,0,0},dy[4]= {0,0,1,-1};
void dfs(int xa,int ya) {
    if(ok){
        return;
    }
    if(xa==1 || ya==1 || xa==3*n || ya==3*n) {
        ok=1;
        return;
    }
    for(int i=0; i<4; i++) {
        if(a[xa+dx[i]][ya+dy[i]]!='#') {
            dfs(xa+dx[i],ya+dy[i]);
        }
    }
}
int main() {
    while(~scanf("%d%d",&n,&m)!=EOF) {
        ok=0;
        x=y=0;
        for(int i=1; i<=n; i++) {
            for(int j=1; j<=m; j++) {
                cin>>a[i][j];
                if(a[i][j]=='S') {
                    x=i,y=j;
                }
            }
        }
        x+=n;
        y+=m;
        for(int i=n+1; i<=3*n; i++)
            for(int j=1; j<=m; j++) {
                a[i][j]=a[i-n][j];
            }
        for(int j=m+1; j<=3*m; j++) {
            for(int i=1; i<=3*n; i++) {
                a[i][j]=a[i][j-m];
            }
        }
        dfs(x,y);
        if(ok==1) {
            cout<<"Yes"<<endl;
        } else cout<<"No"<<endl;
    }
    return 0;
}
反馈
如果你认为某个帖子有问题,欢迎向洛谷反馈,以帮助更多的同学。



请具体说明理由,以增加反馈的可信度。