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

小x学游泳(swim)答案(笔记)

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

#include<bits/stdc++.h>

using namespace std;

int n,m,d[105][105],ex,ey,fx,fy;

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;

         }

     }

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

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

             if(a[i][j]=='S'){

                 ex=i;

                 ey=j;

             }

             if(a[i][j]=='T'){

                 fx=i;

                 fy=j;

                  a[fx][fy]='.';

             }

         }

     }

     dfs(ex,ey,0);

     cout<<d[fx][fy];

    

return 0;



小x学游泳(swim)答案(笔记)的评论 (共 条)

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