zoukankan      html  css  js  c++  java
  • [POJ]poj1573(模拟)

    题意:模拟

    模拟就行

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    #define rep(i,n) for(int i=1;i<=n;i++)
    #define pb push_back
    #define mp make_pair
    #define LL long long
    #define nd second
    #define st first
    
    #define pii pair<int , int> 
    
    const int N = 2e1+7;
    
    const int dx[]={1,-1,0,0};
    const int dy[]={0,0,1,-1};
    
    int n,m,s,cnt;
    
    int a[N][N],vis[N][N],tag[N][N];
    
    void dfs(int x,int y,int step){
        if(x>n||y>m||x<1||y<1){
            printf("%d step(s) to exit
    ",step);
            return;
        }
        if(tag[x][y]==-1)tag[x][y]=step;
        vis[x][y]++;
        
        if(vis[x][y]==2){
            printf("%d step(s) before a loop of %d step(s)
    ",tag[x][y],step-tag[x][y]);
            return ;
        }
        int nx=x+dx[a[x][y]];
        int ny=y+dy[a[x][y]];
        dfs(nx,ny,step+1);
    }
    
    void init(){
        memset(vis,0,sizeof(vis));
        memset(tag,-1,sizeof(tag));
    }
    
    int main(){
        while(cin>>n>>m>>s){ 
            if(!n)return 0; 
            
            init();
            
            rep(i,n){
                string s;
                cin>>s;
                for(int j=0;j<s.size();j++){
                    if(s[j]=='S')a[i][j+1]=0;
                    if(s[j]=='N')a[i][j+1]=1;
                    if(s[j]=='E')a[i][j+1]=2;
                    if(s[j]=='W')a[i][j+1]=3;
                    }    
                }
            dfs(1,s,0);
        } 
    } 
  • 相关阅读:
    sizeof、strlen、length、size
    extern关键字
    结构
    引用
    指针
    数组
    linux端口 ,打开服务端口
    linux用户禁用
    防止验证码的恶意发送
    springboot 项目windows下打包、注册服务。
  • 原文地址:https://www.cnblogs.com/xutianshu/p/10519385.html
Copyright © 2011-2022 走看看