`
java-mans
  • 浏览: 11432417 次
文章分类
社区版块
存档分类
最新评论

hdu1035

 
阅读更多
#include<iostream>
#include<string>

using namespace std;

int n,m;
int step,loop;
char map[200][200];
int t[200][200];
void dfs(int x,int y,int s)
{
 if(x<0||x>=n||y<0||y>=m)
 {
  step=s-1;return ;
 }
 else if(t[x][y]!=0)
 {
  loop=s-t[x][y];
  step=t[x][y]-1;
  return ;
 }
 else switch(map[x][y])
 {
  case 'W':t[x][y]=s;dfs(x,y-1,s+1);break;
  case 'E':t[x][y]=s;dfs(x,y+1,s+1);break;
  case 'S':t[x][y]=s;dfs(x+1,y,s+1);break;
  case 'N':t[x][y]=s;dfs(x-1,y,s+1);break;
  default:break;
 }
}

int main()
{
 int start;
 while(scanf("%d%d",&n,&m)!=EOF&&(n||m))//cin>>n>>m,n&&m
 {
  scanf("%d",&start);//cin>>start;
  int i,j;
  
  for(i=0;i<n;i++)
  {getchar();
   for(j=0;j<m;j++)
   {
    //cin>>map[i][j];
    scanf("%c",&map[i][j]);
    t[i][j]=0;
   }
  }
  step=1;
  loop=0;
  dfs(0,start-1,step);
  if(loop==0)
   cout<<step<<" step(s)"<<" to exit"<<endl;
  else cout<<step<<" step(s)"<<" before a loop of "
   <<loop<<" step(s)"<<endl;
 }
 return 0;

 

}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics