OlveraeUNSW
返回题目列表
COMP2521

DFS · 两点是否可达

DFS · 从 s 能不能走到 t

读入一张有向图和两个顶点 s、t,判断从 s 出发是否存在一条有向路径到达 t。能到输出 1,不能输出 0。

请补全 dfs:从 v 出发,把所有<strong>可达</strong>的顶点标记进 visited[]。主函数会调用 dfs(s),再看 visited[t] 是否为真。

易错点:① 一进 dfs 就标记 visited[v],否则有环图会无限递归、栈溢出。② 只递归 adj[v][w]==1 且 !visited[w] 的邻居。③ s == t 时答案是 1(dfs(s) 会把 s 自己标上,自然 visited[t] 为真)。

输入

  • 第 1 行:V E。
  • 接下来 E 行:每行 u v,表示有向边 u → v。
  • 最后一行:s t。

输出

  • 一行:1(可达)或 0(不可达)。

示例:输入 4 2 / 0 1 / 1 2 / 0 2 → 输出 1(0→1→2 可达 2)。

样例

stdin
4 2
0 1
1 2
0 2
期望输出
1
stdin
4 2
0 1
1 2
0 3
期望输出
0
c-dcc
14