hdu1010感想
杭电这道题是用dfs走迷宫问题,一直wa是因为没有将走过的地方标记,所以如果遇到走迷宫的问题一定要将走过的地方标记,如下:
if(nx>=0&&nx<n&&ny>=0&&ny<m&&position[nx][ny]!='X'){ position[nx][ny]='X'; if(dfs(nx,ny,time+1)) return 1; position[nx][ny]='.'; }
当然,最开始的起点一开始就要标记!
position[sx][sy]='X'; //主函数中就将起点标记为已走过 if(dfs(sx,sy,0)) printf("YES\n"); else printf("NO\n"); }