markdown 在线制作ppt json校验和格式化工具

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

posted @ 2015-06-10 16:33  GavinHacker  阅读(152)  评论(0编辑  收藏  举报
markdown 在线制作ppt json校验和格式化工具