rt,代码:
#include <bits/stdc++.h>
using namespace std;
int fx[5] = {0,0,1,0,-1};
int fy[5] = {0,1,0,-1,0};
int tx,ty,m,n,i,j,q[90000][10];
int s1,s2,e1,e2,head = 1,tail = 1;
char a[10000][10000];
int main(){
cin>>m>>n;
for(i = 1;i <= n;i ++){
for(j = 1;j <= m;j ++){
cin>>a[i][j];
}
}
q[1][1] = 1;
q[1][2] = 1;
q[1][3] = 1;
while(head <= tail){
for(i = 1;i <= 4;i ++){
tx = q[head][1] + fx[i];
ty = q[head][2] + fy[i];
if(a[tx][ty] == '.' && tx >= 1 && tx <= n && ty >= 1 && ty <= m){
a[tx][ty] = '#';
tail ++;
q[tail][1] = tx;
q[tail][2] = ty;
q[tail][3] = q[head][3] + 1;
if(tx == n && ty == m){
cout<<q[tail][3];
return 0;
}
}
}
head++;
}
return 0;
}
在一喷通调了半天,结果对了,但没完全对