返回题目列表
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