zoukankan      html  css  js  c++  java
  • HDU 1035

    模拟他给的方向走,判断一个循环即可

     1 #include <iostream>
     2 #include <cstring>
     3 using namespace std;
     4 int dx[5]={0,0,1,0,-1};
     5 int dy[5]={0,1,0,-1,0};
     6 char s[1000];
     7 int map[1000][1000];
     8 int flag[1000][1000];
     9 bool lop;
    10 int n,m,k,x,y,t;
    11 bool check(int const &x,int const &y)
    12 {
    13     return 0<=x&&x<n&&0<=y&&y<m; 
    14 }
    15 void walk(){
    16     t=lop=x=0,y=k-1;
    17     while(check(x,y))
    18     {
    19         if(flag[x][y]){
    20             lop=1; break;
    21         }
    22         flag[x][y]=++t;
    23         int tmp=x;
    24         x+=dx[map[x][y]];
    25         y+=dy[map[tmp][y]];
    26 //        cout<<x<<y<<endl;
    27     }
    28     if(lop){
    29         printf("%d step(s) before a loop of %d step(s)
    ",flag[x][y]-1,1+t-flag[x][y]);    
    30     } else {
    31         printf("%d step(s) to exit
    ",t);
    32     }
    33 }
    34 int main()
    35 {
    36     while(~scanf("%d%d",&n,&m),(n+m))
    37     {
    38         scanf("%d",&k);
    39         for(int i=0;i<n;i++)
    40         {
    41             scanf("%s",&s);
    42             for(int j=0;j<m;j++)
    43             {
    44                 if(s[j]=='E') map[i][j]=1;
    45                 else if(s[j]=='S') map[i][j]=2;
    46                 else if(s[j]=='W') map[i][j]=3;
    47                 else map[i][j]=4;
    48             }
    49         }
    50         memset(flag,0,sizeof(flag));
    51         walk();
    52     }
    53 }
    我自倾杯,君且随意
  • 相关阅读:
    vue相关坑
    jQuery上传文件按钮美化
    大屏幕数据可视化问题
    jquery实现点击页面空白处,弹框消失
    知识点
    js数字串传参时变科学计数法
    jQuery循环遍历取值
    如何判断一个弹框是打开还是关闭状态?
    js库写法
    React版本修改内容
  • 原文地址:https://www.cnblogs.com/nicetomeetu/p/5447244.html
Copyright © 2011-2022 走看看