一句话理解
网格 DFS:上下左右四格当邻居。
为什么要学
走迷宫、染房间。
讲解
dx,dy 四个方向。先判出界和障碍,再 vis。
字符图里空地能走、墙不能走,读题。
例子
int dx[4]={-1,1,0,0}, dy[4]={0,0,-1,1};
void dfs(int x,int y){
vis[x][y]=1;
for(int k=0;k<4;k++){
int nx=x+dx[k], ny=y+dy[k];
if(ok(nx,ny)) dfs(nx,ny);
}
}
每个格子最多进一次。
常见错误
- 出界判断写在访问之后。
- 斜走没说却走了 8 向。