問題描述:
一天,小明不小心進入了一個迷宮,現在請你幫助他判斷能否出走出迷宮,如果可能,則輸出YES. 如果不能走到出口,則輸出NO. 每次走只能是上下左右4個方向.
*表示可走
#表示障礙
T表示出口
入口是(1,1),數據保證左上角是入口
#includeusing namespace std; char maze[100][100]; bool flag[100][100]; int dx[]={0,0,1,-1}; int dy[]={1,-1,0,0}; int m,n; bool dfs(int x,int y) { flag[x][y]=1; //走過的路標記為1 if(maze[x][y]=='T')return true; for(int i=0;i<4;i++) //四個方向 { int nx=x+dx[i]; int ny=y+dy[i]; if(flag[nx][ny]==0||maze[nx][ny]=='*'||maze[nx][ny]=='T'&&nx>0&&ny>0&&nx >m>>n){ memset(maze,0,sizeof(maze)); memset(flag,0,sizeof(flag)); for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) cin>>maze[i][j]; if(dfs(1,1))cout<<"YES"< 測試數據: 3 3
*##
***
##T
4 4
****
*##*
**#*
###T