欢迎光临散文网 会员登陆 & 注册

走出迷宫

2023-09-21 13:56 作者:泽-吾愿之  | 我要投稿

#include<bits/stdc++.h>

using namespace std;

int n,m,d[50][50];

char a[50][50];

int dx[5]={0,0,1,0,-1};

int dy[5]={0,1,0,-1,0};

bool check(int x,int y){

return x>0&&x<=n&&y>0&&y<=m;

}

void dfs(int x,int y,int z){

d[x][y]=z;

for(int i=1;i<=4;i++){

int tx=x+dx[i];

int ty=y+dy[i];

if(a[tx][ty]=='.'&&check(tx,ty)&&z+1<d[tx][ty]){

dfs(tx,ty,z+1);

}

}

}

int main(){

cin>>n>>m;

for(int i=1;i<=n;i++){

for(int j=1;j<=m;j++){

cin>>a[i][j];

d[i][j]=INT_MAX;

}

}

dfs(1,1,1);

cout<<d[n][m];


return 0;


}


走出迷宫的评论 (共 条)

分享到微博请遵守国家法律