跳到正文
信奥逐课

第 226 课

DFS 模板

🟢 入门 约 5 分钟

一句话理解

DFS 模板:标记、遍历邻居、必要时回溯。

为什么要学

先背清再改。

讲解

void dfs(u){ vis[u]=1; for v in g[u]: if !vis[v] dfs(v); }

需要恢复的场合 vis 要改回 0,那是回溯搜索。

例子

void dfs(int u) {
    vis[u] = 1;
    for (int v : g[u]) if (!vis[v]) dfs(v);
}

连通块式 DFS,标记不撤销。

常见错误

练习 做完再看下一课

防止重复访问,通常用 ____ 数组

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

Ctrl / ⌘ + Enter 运行 · Tab 缩进

输出
 

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

左右方向键也可翻课