zoukankan      html  css  js  c++  java
  • 2-5-6264:走出迷宫

    描述

    当你站在一个迷宫里的时候,往往会被错综复杂的道路弄得失去方向感,如果你能得到迷宫地图,事情就会变得非常简单。 
    假设你已经得到了一个n*m的迷宫的图纸,请你找出从起点到出口的最短路。

    输入第一行是两个整数n和m(1<=n,m<=100),表示迷宫的行数和列数。
    接下来n行,每行一个长为m的字符串,表示整个迷宫的布局。字符'.'表示空地,'#'表示墙,'S'表示起点,'T'表示出口。输出输出从起点到出口最少需要走的步数。样例输入

    3 3
    S#T
    .#.
    ...

    样例输出

    6
     1 #include<stdio.h>
     2 #include<string.h>
     3 int ni[4]={0,1,0,-1};
     4 int nj[4]={1,0,-1,0};
     5 int qu[10001][2],dep[10000];
     6 char a[101][101];
     7 int book[101][101];
     8 int m,n,i,j,k,si,sj,xi,xj,qi,qj,zi,zj,bu=0,ans;
     9 int main()
    10 {
    11     int h,t;
    12     scanf("%d%d",&m,&n);
    13     memset(book,0,sizeof(book));
    14     for(i=1;i<=m;i++)
    15         scanf("%s",a[i]);
    16     for(i=1;i<=m;i++)
    17         for(j=0;j<=n-1;j++)
    18         {
    19             if(a[i][j]=='S')    {qi=i;qj=j;book[i][j]=1;}
    20             if(a[i][j]=='T')    {zi=i;zj=j;}
    21         }
    22         h=0;t=0;ans=-1;
    23         memset(dep,0,sizeof(dep));
    24         memset(qu,0,sizeof(qu));
    25         qu[0][0]=qi;qu[0][1]=qj;
    26         while(h<=t)
    27         {
    28             xi=qu[h][0];
    29             xj=qu[h][1];
    30             if(xi==zi&&xj==zj)
    31             {
    32                 ans=dep[h];
    33                 break;
    34             }
    35             for(k=0;k<=3;k++)
    36             {
    37                 si=xi+ni[k];
    38                 sj=xj+nj[k];
    39                 if(si>=1&&si<=m&&sj>=0&&sj<=n-1)
    40                     if(a[si][sj]!='#'&&book[si][sj]!=1)
    41                     {
    42                         qu[++t][0]=si;
    43                         qu[t][1]=sj;
    44                         dep[t]=dep[h]+1;
    45                         book[si][sj]=1;
    46                     }
    47             }
    48             h++;
    49         }
    50         printf("%d
    ",ans);
    51     return 0;
    52 }
  • 相关阅读:
    Day 9
    Day 8
    Day 7
    Day 6
    Day 5
    Day 4
    Day 3
    Day 2
    Day 1
    解决vue-cli3不停请求 /sockjs-node/info?t= 问题
  • 原文地址:https://www.cnblogs.com/qianxuejin/p/6011420.html
Copyright © 2011-2022 走看看