zoukankan      html  css  js  c++  java
  • poj 3984 迷宫问题(dfs)

    题目链接http://poj.org/problem?id=3984

    思路:经典型的DFS题目。搜索时注意剪枝:越界处理,不能访问处理。

    代码:

    #include <iostream>
    using namespace std;
    
    const int MAX_N = 15;
    int map[MAX_N][MAX_N];
    typedef struct Node
    {
        int x;
        int y;
    }Road;
    Road vis[MAX_N];
    
    int SearchRoad( int i, int j, int count )
    {
        if ( i == 4 && j == 4 )
        {
            vis[count].x = i;
            vis[count].y = j; 
            for ( int i = 0; i <= count; ++i )
                printf( "(%d, %d)
    ", vis[i].x, vis[i].y );
        }
        else
        if ( i >= 5 || j >= 5 || map[i][j] == 1 )
            return 0;
        else
        {
            vis[count].x = i;
            vis[count].y = j;
    
            count++;
            SearchRoad( i+1, j, count );
            SearchRoad( i, j+1, count );
        }
    
        return 0;
    }
    
    
    int main()
    {
        for ( int i = 0; i < 5; ++i )
            for ( int j = 0; j < 5; ++j )
                scanf( "%d", &map[i][j] );
    
        SearchRoad( 0, 0, 0 );
        return 0;
    }
  • 相关阅读:
    正则表达式和re模块
    面向对象基础
    面向对象高级
    网络编程
    collectiontimeossysjson模块
    继承
    封装
    我在吃饭
    111
    关于羽毛球拍
  • 原文地址:https://www.cnblogs.com/tallisHe/p/4020866.html
Copyright © 2011-2022 走看看