求大神帮忙 90

P1363 幻象迷宫

我也是90 不过是#1_data2挂掉了 ```cpp #include<bits/stdc++.h> using namespace std; #define maxn 3000+5 #define inf 999999999 #define mod 10007 int n,m,fl,lf; int sx,sy; char c[maxn][maxn]; int dx[]={1,0,-1,0}; int dy[]={0,1,0,-1}; inline void yu() { } inline void dfs(int x,int y) { int nx,ny,cx,cy; for(register int i=0;i<4;i++) { if(fl)return; nx=x+dx[i]; ny=y+dy[i]; if(nx>2*n)nx=1; if(ny>2*m)ny=1; if(nx<1)nx=2*n; if(ny<1)ny=2*m; if(nx>0&&nx<=2*n&&ny>0&&ny<=2*m) { if(c[nx][ny]=='.') { cx=nx%n; cy=ny%m; if(c[cx][cy]=='?'||c[cx+n][cy]=='?'||c[cx][cy+m]=='?'||c[cx+n][cy+m]=='?') { fl=1; return; } c[nx][ny]='?'; dfs(nx,ny); } } } } inline void Do() { c[sx][sy]='?'; dfs(sx,sy); } inline void out() { if(fl)cout<<"Yes"<<endl; else cout<<"No"<<endl; } inline void in() { ios::sync_with_stdio(false); cin.tie(0); char ct; while(cin>>n>>m) { yu(); fl=0; for(register int i=1;i<=n;i++) { for(register int j=1;j<=m;j++) { cin>>ct; if(ct=='S') { sx=i+n;sy=j+m; } c[i][j]=ct; } } for(int i=1;i<=n;i++) for(int j=m+1;j<=2*m;j++) c[i][j]=c[i][j-m]; for(int i=n+1;i<=2*n;i++) for(int j=1;j<=2*m;j++) c[i][j]=c[i-n][j]; Do(); out(); } } int main() { in(); return 0; } ```
by ZigZagKmp @ 2018-03-16 13:13:29


@[yeszy](/space/show?uid=29) 这题的数据为什么不公开啊? 233
by ZigZagKmp @ 2018-03-16 13:24:44


|