zoukankan      html  css  js  c++  java
  • POJ 1573

      1 #include<iostream>
      2 #include<stdio.h>
      3 #define MAXN 15
      4 using namespace std;
      5 
      6 char _m[MAXN][MAXN];
      7 bool mark[MAXN][MAXN];
      8 int  record[MAXN][MAXN];
      9 
     10 int r;
     11 int c;
     12 void dfs(int i,int j);
     13 int main()
     14 {
     15     //freopen("acm.acm","r",stdin);
     16     int i;
     17     int j;
     18     int place;
     19     while(cin>>r>>c>>place)
     20     {
     21         if(!r && !c && !place)
     22             break;
     23         -- place;
     24         memset(mark,false,sizeof(mark));
     25     //    memset(record,0,sizeof(record));
     26         for(i = 0; i < r; ++ i)
     27         {
     28             for(j = 0; j < c; ++ j)
     29             {
     30                 record[i][j] = 1;
     31             }
     32         }
     33         for(i = 0; i < r; ++ i)
     34         {
     35             for(j = 0; j < c; ++ j)
     36             {
     37                 cin>>_m[i][j];
     38             }
     39         }
     40         record[0][place] = 1;
     41         mark[0][place] = true;
     42         dfs(0,place);
     43     //    for(i = 0; i < r; ++ i)
     44     //    {
     45     //        for(j = 0; j < c; ++ j)
     46     //        {
     47     //            cout<<record[i][j]<<" ";
     48     //        }
     49     //        cout<<endl;
     50     //    }
     51     }
     52 }
     53 void fun_1(int num);
     54 void fun_2(int num,int num_1);
     55 void dfs(int i,int j)
     56 {
     57     int tem1;
     58     int tem2;
     59     if(_m[i][j] == 'E')
     60     {
     61         if(j + 1 < c)
     62         {
     63             if(!mark[i][j+1])
     64             {
     65                 mark[i][j+1] = true;
     66                 record[i][j+1] += record[i][j];
     67                 dfs(i,j+1);
     68                 return ;
     69             }
     70             else
     71             {
     72                 fun_2(record[i][j+1]-1,record[i][j]-record[i][j+1]+1);
     73                 return ;
     74             }
     75         }
     76         else
     77         {
     78             fun_1(record[i][j]);
     79             return ;
     80         }
     81     }///////////////////////
     82 
     83 
     84     if(_m[i][j] == 'S')
     85     {
     86         if(i + 1 < r)
     87         {
     88             if(!mark[i+1][j])
     89             {
     90                 mark[i+1][j] = true;
     91                 record[i+1][j] += record[i][j];
     92                 dfs(i+1,j);
     93                 return ;
     94             }
     95             else
     96             {
     97                 fun_2(record[i+1][j]-1,record[i][j]-record[i+1][j]+1);
     98                 return ;
     99             }
    100         }
    101         else
    102         {
    103             fun_1(record[i][j]);
    104             return ;
    105         }
    106     }//////////////////////////////
    107 
    108 
    109     if(_m[i][j] == 'W')
    110     {
    111         if(j - 1 >= 0)
    112         {
    113             if(!mark[i][j-1])
    114             {
    115                 mark[i][j-1] = true;
    116                 record[i][j-1] += record[i][j];
    117                 dfs(i,j-1);
    118                 return ;
    119             }
    120             else
    121             {
    122                 fun_2(record[i][j-1]-1,record[i][j]-record[i][j-1]+1);
    123                 return ;
    124             }
    125         }
    126         else
    127         {
    128             fun_1(record[i][j]);
    129             return ;
    130         }
    131     }///////////////////////////////////////////
    132 
    133 
    134     if(_m[i][j] == 'N')
    135     {
    136         if(i - 1 >= 0)
    137         {
    138             if(!mark[i-1][j])
    139             {
    140                 mark[i-1][j] = true;
    141                 record[i-1][j] += record[i][j];
    142                 dfs(i-1,j);
    143                 return;
    144             }
    145             else
    146             {
    147                 fun_2(record[i-1][j]-1,record[i][j]-record[i-1][j]+1);
    148                 return ;
    149             }
    150         }
    151         else
    152         {
    153             fun_1(record[i][j]);
    154             return ;
    155         }
    156     }
    157 }
    158 
    159 
    160 void fun_1(int num)
    161 {
    162     cout<<num;
    163 //    if(num != 1)
    164         cout<<" step(s) to exit"<<endl;
    165 //    else
    166 //        cout<<" step to exit"<<endl;
    167 }
    168 
    169 void fun_2(int num,int num_1)
    170 {
    171     cout<<num;
    172 //    if(num != 1)
    173         cout<<" step(s) before a loop of ";
    174 //    else
    175 //        cout<<" step before a loop of ";
    176     cout<<num_1;
    177 //    if(num_1 != 1)
    178         cout<<" step(s)"<<endl;
    179 //    else
    180 //        cout<<" step"<<endl;
    181 }

    关注我的公众号,当然,如果你对Java, Scala, Python等技术经验,以及编程日记,感兴趣的话。 

    技术网站地址: vmfor.com

  • 相关阅读:
    初识React
    前端跨页面传值 cookie,sessionStorage,url传参
    commonJS 和 es6规范 的引入导出(摘自简书sf)
    Vue2.x 添加element UI 组件
    python3 基础1
    webapck 插件HtmlWebpackPlugin的使用以及webpack 热更新;
    ES6 基础(set数据结构和map数据结构)
    ansible批量部署模块(二)
    ansible批量部署(一)
    ssh远程管理
  • 原文地址:https://www.cnblogs.com/gavinsp/p/4566457.html
Copyright © 2011-2022 走看看