zoukankan      html  css  js  c++  java
  • 【POJ1573】Robot Motion

    题目传送门

    本题知识点:模拟

    本题的题意也很简单。

    给出一个矩阵,矩阵里面有着东南西北(上下左右)的指示,当机器人走到上面时则会按照指示前进。机器人每次都从最上面一行的某一列进入。

    需要判断的是机器人走出了矩阵或者是在矩阵里循环走不出去,样例一与样例二则很好地诠释了这两种状况。

    输出也是根据这两种情况分情况输出,我是按照是否有循环的思路去输出的,感觉这种简单模拟是很有多种做法的,至于自己喜欢哪种,则可以自己去琢磨了。

    数据很小(快乐水题)

    // POJ 1573
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    
    int h, w, t;
    char maze[20][20];
    int run[20][20];
    
    void init(){
        for(int i = 0; i < 20; i++){
            for(int j = 0; j < 20; j++){
                maze[i][j] = '#';
            }
        }
    }
    
    int main()
    {
        while(~scanf("%d %d %d", &h, &w, &t) && h + w + t != 0){
            memset(run, 0, sizeof(run));
            init();
            for(int i = 1; i <= h; i++) scanf("%s", maze[i] + 1);
    
            int i = 1, j = t;
            while(true){
                if(maze[i][j] == '#') break;
                if(run[i][j] == 2) break;
                run[i][j]++;
                if(maze[i][j] == 'N') i--;
                else if(maze[i][j] == 'W') j--;
                else if(maze[i][j] == 'S') i++;
                else if(maze[i][j] == 'E') j++;
            }
    
            int one = 0, two = 0;
            for(int i = 1; i <= h; i++){
                for(int j = 1; j <= w; j++){
                    if(run[i][j] == 1) one++;
                    if(run[i][j] == 2) two++;
                }
            }
    
            if(!two){
                printf("%d step(s) to exit
    ", one);
            }
            else printf("%d step(s) before a loop of %d step(s)
    ", one, two);
        }
        return 0;
    }
    
    
  • 相关阅读:
    vmware ubuntu 异常关机无法连接到网络
    Speed up GCC link
    常用的一些解压命令
    Log4j 漏洞复现
    Test Case Design method Boundary value analysis and Equivalence partitioning
    CCA (Citrix Certified Administrator) exam of “Implementing Citrix XenDesktop 4”
    What is Key Word driven Testing?
    SAP AGS面试小结
    腾讯2013终端实习生一面
    指针的引用
  • 原文地址:https://www.cnblogs.com/Ayanowww/p/11533648.html
Copyright © 2011-2022 走看看