POJ_1979 Red and Black 迷宫类
第一次用递归搜索,感觉怪神奇的,就是记者标记指针和返回 就行啦
View Code
/* 功能Function Description: POJ-1979 开发环境Environment: vc6.0 技术特点Technique: 版本Version: 作者Author: jzjz 日期Date: 20120817 备注Notes: 迷宫搜索 */ #include<stdio.h> #include<string.h> int m[4][2]={{1,0,},{0,1},{-1,0},{0,-1}}; int count; char map[26][26]; int ben[26][26]; int dfs(int x,int y) { int i,xx,yy; xx=x; yy=y; for(i=0;i<4;++i) { x=xx+m[i][0]; y=yy+m[i][1]; if(map[x][y]!='0'&&map[x][y]=='.'&&ben[x][y]==0) { ben[x][y]=1; count+=dfs(x,y); // return 1; } } return 1; } int main() { int n,m,i,j,x,y; while(scanf("%d%d",&m,&n)&&(n!=0||m!=0)) { count=0; memset(ben,0,sizeof(ben)); for(i=1;i<=n;++i) { scanf("%s",map[i]+1); for(j=1;j<=m;++j) { if(map[i][j]=='@') { x=i; y=j; } } } for(i=0;i<=n+1;++i) { map[i][0]='0'; map[i][m+1]='0'; } for(i=0;i<=m+1;++i) { map[0][i]='0'; map[n+1][i]='0'; } dfs(x,y); printf("%d\n",count+1); } return 0; }