zoukankan      html  css  js  c++  java
  • HDU 1035 Robot Motion

     

    求人在迷宫中的路径
    构造结构体作为数据类型,c表示指示方向,ind表示 走过次数,只有两种情况,出来和出不来。出来指ij超出边界,出不来就在里面循环,只要走过的次数达到2次就表示出不来了。设两个计数器,当走过次数为0时,计数器1++;次数为1时,计数器2++。输出问题也解决了。
    上代码
     
     
     
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    struct Maze{
        char c;
        int ind;
    }maze[100][100];
    int main()
    {
        int k;
        int m,n;
        int step1,step2,flag;
    
        while(~scanf("%d%d",&m,&n),m,n){
            scanf("%d",&k);
            getchar();
            for(int i=1;i<=m;i++){
                for(int j=1;j<=n;j++){
                    scanf("%c",&maze[i][j].c);
                    maze[i][j].ind=0;
                }
                getchar();//输入时有回车
            }
            step1 = step2 = flag = 0;
            int i=1,j=k;
            while(1){
    
                if(maze[i][j].ind == 1){
                    step2++;
                    maze[i][j].ind++;
                }
                else if(maze[i][j].ind == 0){
                    step1++;
                    maze[i][j].ind++;
                }
                else if(maze[i][j].ind == 2){
                    flag=0;break;
                }
                switch(maze[i][j].c){
    
                    case 'N':i-=1;break;
                    case 'S':i+=1;break;
                    case 'E':j+=1;break;
                    case 'W':j-=1;break;
    
                }
                if(i<1||i>m||j<1||j>n){
                    flag=1;break;
                }
            }
            if(flag == 1){
                printf("%d step(s) to exit
    ",step1);
            }
            else{
                printf("%d step(s) before a loop of %d step(s)
    ",step1-step2,step2);
            }
        }
        return 0;
    }
    ---------------- 人们生成的最美好的岁月其实就是最痛苦的时候,只是事后回忆起来的时候才那么幸福。
  • 相关阅读:
    javascript基础01
    javascript基础02
    javascript基础03
    javascript基础04
    javascript基础05
    javascript基础06
    Android 实现截屏功能
    android 获取摄像头像素
    c# Winform dataGridView动态添加行
    Android 读取Assets下的文件
  • 原文地址:https://www.cnblogs.com/livelihao/p/5154747.html
Copyright © 2011-2022 走看看