求帮忙找错

P1825 [USACO11OPEN] Corn Maze S

已过,谢谢 ```cpp #include <iostream> using namespace std; int n,m,dx[4]={-1,0,1,0},dy[4]={0,1,0,-1},d[100010][3],x,y,zx,zy,cs[26][2][2],t,w=1; short map[310][310]; char ch; int main() { int i,j; cin>>n>>m; for (i=1;i<=n;i++) for (j=1;j<=m;j++) { cin>>ch; switch(ch) { case '#':break; case '.':{map[i][j]=1; break; } case '@':{x=i;y=j; break; } case '=':{zx=i;zy=j;map[i][j]=1; break; } default:{map[i][j]=ch-'A'+2; if(!cs[ch-'A'][1][0]&&!cs[ch-'A'][1][1]){cs[ch-'A'][1][0]=i;cs[ch-'A'][1][1]=j;} else{cs[ch-'A'][0][0]=i;cs[ch-'A'][0][1]=j;} } } } d[1][0]=x;d[1][1]=y; while(t!=w) { t++; for (i=0;i<4;i++) { x=d[t][0]+dx[i];y=d[t][1]+dy[i]; if (x>0&&x<=n&&y>0&&y<=m&&map[x][y]) { w++; if (map[x][y]>1) if (cs[map[x][y]-2][1][0]==x&&cs[map[x][y]-2][1][1]==y){d[w][0]=cs[map[x][y]-2][0][0];d[w][1]=cs[map[x][y]-2][0][1];} else{d[w][0]=cs[map[x][y]-2][1][0];d[w][1]=cs[map[x][y]-2][1][1];} else{d[w][0]=x;d[w][1]=y;} d[w][2]=d[t][2]+1; map[x][y]=0;//map[d[w][0]][d[w][1]]=0; if (d[w][0]==zx&&d[w][1]==zy){cout<<d[w][2]<<endl;return 0;} } } } return 0; } ```
by a___ @ 2017-04-21 12:19:49


|