zoukankan      html  css  js  c++  java
  • hdu--1240--很水的bfs

    今天 没什么事 有空在家 就再做了一题~

    撸2盘 刷一题 的节奏....

    这题 好水的 ..

        touch me

    #include <iostream>
    #include <cstring>
    #include <queue>
    using namespace std;
    
    int n;
    char maze[110][15];
    bool vis[110][15];
    int dir[4][2]={1,0,-1,0,0,-1,0,1};
    struct data
    {
        int x , y;
        int step;
    }st,end;
    
    int bfs( )
    {
        data now , next;
        int xx , yy;
        queue<data>q;
        memset( vis , false , sizeof(vis) );
        while( !q.empty() )
            q.pop();
        q.push(st);
        vis[st.x][st.y] = true;
        while( !q.empty() )
        {
            now = q.front();
            q.pop();
            if( now.x == end.x && now.y == end.y )
            {
                return now.step;
            }
            for( int i = 0 ; i<4 ; i++ )
            {
                xx = now.x + dir[i][0];
                yy = now.y + dir[i][1];
                if( xx>=0 && xx<n*n && yy>=0 && yy<n && maze[xx][yy]!='X' && !vis[xx][yy] )
                {
                    next.x = xx;
                    next.y = yy;
                    next.step = now.step + 1;
                    vis[xx][yy] = true;
                    q.push(next);
                }
            }
        }
        return -1;
    }
    
    int main()
    {
        int ans , x , y , z;
        char str[10];
        while( cin>>str )
        {
            cin >> n;
            for( int i = 0 ; i<n*n ; i++ )
            {
                for( int j = 0 ; j<n ; j++ )
                {
                    cin >> maze[i][j];
                }
            }
            cin >> x >> y >> z;
            x += n*z;
            st.x = x;
            st.y = y;
            st.step = 0;
            cin >> x >> y >> z;
            x += n*z;
            end.x = x;
            end.y = y;
            cin >> str;
            ans = bfs( );
            if( -1 == ans )
                cout << "NO ROUTE" << endl;
            else
                cout << n << " " << ans << endl;
        }
        return 0;
    }
    View Code


    有个 蛮麻烦的bfs 我出现了个bug 太奇怪了 =-=

    just follow your heart
  • 相关阅读:
    快速排序?
    算法和数据结构?
    渲染一个react?
    移动端兼容适配?
    PWA全称Progressive Web App,即渐进式WEB应用?
    InnoDB一棵B+树可以存放多少行数据?
    移动端首屏优化?
    InnoDB什么时候会锁表?
    数组去重,多种方法?
    如何处理异形屏iphone X?
  • 原文地址:https://www.cnblogs.com/radical/p/3863577.html
Copyright © 2011-2022 走看看