Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
357181 董峻昊 【C6-7】迷宫的第一条出路 C++ 解答错误 0 1 MS 260 KB 1036 2025-10-21 20:29:32

Tests(0/10):


//【C6-7】走出迷宫的最少步数2 #include <iostream> using namespace std; char a[105][105]; int d[105][105]; int n,m; int sx,sy,ex,ey; int dx[5]={0,-1,0,1,0}; int dy[5]={0,0,1,0,-1}; void dfs(int x,int y,int step) { if (x==ex&&y==ey) { if (step<d[ex][ey]) { d[ex][ey] = step; } return; } for (int i=1;i<=4;i++) { int nx=x+dx[i]; int ny=y+dy[i]; if (nx>=0&&nx<n&&ny>=0&&ny<m&&a[nx][ny]!='#'&&step+1<d[nx][ny]) { d[nx][ny]=step+1; dfs(nx,ny,step+1); } } } int main() { cin>>n>>m; for(int i=0;i<n;i++) { cin>>a[i]; for (int j=0;j<m;j++) { d[i][j]=10000; if (a[i][j]=='S'){ sx=i; sy=j; } else if(a[i][j]=='T') { ex=i; ey=j; } } } d[sx][sy]=0; dfs(sx,sy,0); cout<<d[ex][ey]<<endl; return 0; }


测评信息: