密密被困在一个迷宫里,迷宫有n个路口,编号为1-n。密密现在站在第一个路口,出口编号为m。先给出每个路口通向何处,问密密能否逃出迷宫?多组数据,每组数据n+2行。第一行为一个正整数n代表路口的个数,之后n行,这n行中的第i行为第i个路口的向左路口、向前路口、向右路口。最后一行为一个正整数m代表迷宫的终点。当n=0时输入结束。 输出 每组数据输出一行,若密密能走出迷宫,输出“YES”,否则输出“NO”。
时间: 2024-03-01 17:52:21 浏览: 182
你之前已经问过了这个问题,我已经回答了,以下是代码实现:
```python
def dfs(cur, end, visited, graph):
if cur == end:
return True
visited[cur] = True
for next_node in graph[cur]:
if not visited[next_node]:
if dfs(next_node, end, visited, graph):
return True
return False
while True:
n = int(input())
if n == 0:
break
graph = [[] for _ in range(n+1)]
for i in range(1, n+1):
left, forward, right = map(int, input().split())
if left != 0:
graph[i].append(left)
if right != 0:
graph[i].append(right)
if forward != 0:
graph[i].append(forward)
end = int(input())
visited = [False] * (n+1)
if dfs(1, end, visited, graph):
print("YES")
else:
print("NO")
```
如果你还有其他问题,可以继续问我。
阅读全文