zoukankan      html  css  js  c++  java
  • HDOJ---1035 Robot Motion

    这几天比较颓= = ~~~~效率几乎为零


    原题:http://acm.hdu.edu.cn/showproblem.php?pid=1035

    题意:

    一个迷宫每个格子都有{W(左走),E(右走),S(下走),N(上走)}中的一个字符,表示下一步行走方向;

    输入:

    迷宫的  纵向长度m和横向长度n  以及 起点:[0][x];

    输出如果能走出去输出:

    (ans) step(s) to exit;
    如果出不去  存在循环输出 
    (几步之后)step(s) before a loop of (几个格子的循环) step(s)
    我能想到的是写个递归……应该是……
    map[][]构造迷宫;
    visit[][]记录是否被访问;
    然后两个变量,一个记录步数(有循环则为进入循环前的),一个记录循环长度(若为0则不输出)(人太颓了,回来贴代码- - ,先去睡会儿
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    char map[15][15];
    int vis[15][15];
    int r,c,st;
    int loop,step;
    int dfs(int x,int y,int num)
    {
        if(x>r||x<1||y<1||y>c)
        {
            cout<<num-1<<" step(s) to exit"<<endl;
            return 0;
        }
        if(vis[x][y])
        {
            cout<<vis[x][y]-1<<" step(s) before a loop of ";
            return 1;
        }
        vis[x][y]=num;
        if(map[x][y]=='N')
        {
            if(dfs(x-1,y,num+1)==1)
                cout<<vis[x][y]-vis[x-1][y]+1<<" step(s)"<<endl;
        }
        else if(map[x][y]=='S')
        {
            if(dfs(x+1,y,num+1)==1)
                cout<<vis[x][y]-vis[x+1][y]+1<<" step(s)"<<endl;
        }
        else if(map[x][y]=='E')
        {
            if(dfs(x,y+1,num+1)==1)
                cout<<vis[x][y]-vis[x][y+1]+1<<" step(s)"<<endl;
        }
        else
        {
            if(dfs(x,y-1,num+1)==1)
                cout<<vis[x][y]-vis[x][y-1]+1<<" step(s)"<<endl;
        }
        return 0;
    }
    int main()
    {
       
        while(cin>>r>>c>>st,r&&c)
        {
            memset(vis,0,sizeof(vis));
            for(int i=1;i<=r;i++)
                for(int j=1;j<=c;j++)
                cin>>map[i][j];
            dfs(1,st,1);
        }
        return 0;
    }

  • 相关阅读:
    (转)EDM邮件制作规范完整版
    (转)Gmail,你必须了解的12个邮件编码问题
    说说CakePHP的关联模型之一 基本关联
    HTML5 离线应用程序
    CakePHP模型中使用join的多种写法
    判断浏览器
    Javascript闭包例子
    安装wamp后,其显示目录的图标显示不出来
    underscore.js 分析 第二天
    HTML5心得
  • 原文地址:https://www.cnblogs.com/XqwKen/p/4564321.html
Copyright © 2011-2022 走看看