zoukankan      html  css  js  c++  java
  • BFS

    #include<iostream>
    #include<cstring>
    #include<queue>
    using namespace std;
    char map[105][105];
    int b[105][105];
    int m,n;
    int s[4][2]={-1,0,1,0,0,-1,0,1};
    struct node{
        int x,y;
        int step;
    };
    int cheak(int x,int y)
    {
        if(x>=1&&x<=m&&y>=1&&y<=n&&b[x][y]==0&&map[x][y]!='*')
            return 1;
            return 0;
    }
    int BFS(int x,int y)
    {
        queue<node>a;
        node now;
        now.x=x;
        now.y=y;
        now.step=0;
        a.push(now);
        while(!a.empty())
        {
            now=a.front();
            a.pop();
            if(map[now.x][now.y]=='C')
            return now.step;
            for(int i=0;i<4;i++)
            {
                int dx=now.x+s[i][0];
                int dy=now.y+s[i][1];
                if(cheak(dx,dy))
                {
                    node next;
                    next.x=dx;
                    next.y=dy;
                    b[next.x][next.y]=1;
                    next.step=now.step+1;
                    a.push(next);
                }
            }
        }
    }
    int main()
    {
        int k;
        while(cin>>m>>n)
        {
            for(int i=1;i<=m;i++)
            {
                cin>>(map[i]+1);
            }
            memset(b,0,sizeof(b));
            for(int i=1;i<=m;i++)
                for(int j=1;j<=n;j++)
                {
                    if(map[i][j]=='B')
                    {
                        b[i][j]=1;
                        k=BFS(i,j);
                        cout<<k<<endl;
                    }
                } 
        }
    } 
  • 相关阅读:
    可输入下拉框
    display:table-cell 相当于td
    循环拼接HTML
    jq操纵select
    echarts柱状图使用
    原生js 获取路由参数
    js下拉模糊查询
    ie 的hack
    vue 兼容ie11
    vuecli中的绝对路径和相对路径
  • 原文地址:https://www.cnblogs.com/Leozi/p/10834982.html
Copyright © 2011-2022 走看看