跳到正文
信奥逐课

第 228 课

网格 DFS

🟢 入门 约 5 分钟

一句话理解

网格 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);
    }
}

每个格子最多进一次。

常见错误

练习 做完再看下一课

网格 DFS 通常用方向数组走四邻。

在线练习 C++ 在浏览器里编译,代码不会上传

Ctrl / ⌘ + Enter 运行 · Tab 缩进

输出
 

进度保存在本机浏览器里。

左右方向键也可翻课