zoukankan      html  css  js  c++  java
  • codevs 1215 迷宫

    时间限制: 1 s
     空间限制: 128000 KB
     题目等级 : 黄金 Gold
    题目描述 Description

    在N*N的迷宫内,“#”为墙,“.”为路,“s”为起点,“e”为终点,一共4个方向可以走。从左上角((0,0)“s”)位置处走到右下角((n-1,n-1)“e”)位置处,可以走通则输出YES,不可以走则输出NO。

    输入描述 Input Description

    输入的第一行为一个整数m,表示迷宫的数量。 
    其后每个迷宫数据的第一行为一个整数n(n≤16),表示迷宫的边长,接下来的n行每行n个字符,字符之间没有空格分隔。

    输出描述 Output Description

    输出有m行,每行对应的迷宫能走,则输出YES,否则输出NO。

    样例输入 Sample Input
    1 
    7
    s...##.
    .#.....
    .......
    ..#....
    ..#...#
    ###...#
    ......e
    样例输出 Sample Output
    YES
    数据范围及提示 Data Size & Hint

     

    bfs

    屠龙宝刀点击就送

    #include<iostream>
    using namespace std;
    int k,a,b,c,d,m;
    char ju[16][16];
    int fx[4]={0,0,-1,1},fy[4]={1,-1,0,0};
    bool ss(int a,int b)
    {
        int head=0,tail=1,f[2000][2],x,y;
        f[tail][1]=a;
        f[tail][2]=b;
        ju[a][b]='#';
        do
        {
            head++;
            for(int i=0;i<4;++i)
            {
                x=f[head][1]+fx[i];
                y=f[head][2]+fy[i];
                if(x>=0&&y>=0&&x<k&&y<k&&ju[x][y]=='.')
                {
                    tail++;
                    f[tail][1]=x;
                    f[tail][2]=y;
                    ju[x][y]='#';
                }
            }
        }while(head<tail);
    }
    int main()
    {
        int h=0;
        cin>>m;
        while(h<m)
        {    
            h++;
            cin>>k;
            for(int i=0;i<k;++i)
            {
                for(int j=0;j<k;++j)
                {
                    cin>>ju[i][j];
                    if(ju[i][j]=='s')
                    {
                        a=i;
                        b=j;
                        ju[i][j]='.';
                    }
                    if(ju[i][j]=='e')
                    {
                        c=i;
                        d=j;
                        ju[i][j]='.';
                    }
                }
            }
            ss(a,b);
            if(ju[c][d]=='#') cout<<"YES"<<endl;
            else cout<<"NO"<<endl;
        }
    }
    我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。
  • 相关阅读:
    shell命令执行过程
    shell中的引用
    ansible小结
    centos自动化安装镜像制作
    centos kickstart
    centos内核引导参数
    C# .NET 遍历Json 形成键值对
    强大的Winform Chart图表控件使用说明
    C#实现转换十六进制
    C# 批量登陆远程目录
  • 原文地址:https://www.cnblogs.com/ruojisun/p/6746833.html
Copyright © 2011-2022 走看看