0-1 BFS · Nhóm: Đồ thị
0-1 BFS (0-1 BFS), nhóm Đồ thị.
def zero_one_bfs(adj, start):
dist = [INF] * n
dist[start] = 0
dq = deque([start])
while dq:
u = dq.popleft()
if done[u]: continue
done[u] = True
for v, w in adj[u]:
if dist[u] + w < dist[v]:
dist[v] = dist[u] + w
if w == 0:
dq.appendleft(v)
else:
dq.append(v)
return dist
Mở trang để xem mô phỏng từng bước và xuất slide bài giảng.