Sắp xếp topo (KAHN)
Cho một đồ thị có hướng gồm n đỉnh và m cạnh.
Hãy tìm một thứ tự sắp xếp các đỉnh sao cho: Với mỗi cạnh u → v thì u đứng trước v trong thứ tự.
Dữ liệu vào (test.inp)
Dữ liệu ra (test.out)
Gợi ý:
topo=[]
B1: Tính bậc vào (indeg) cho mỗi đỉnh
B2: Đưa các đỉnh indeg = 0 vào hàng đợi
B3: Lặp:
- Lấy 1 đỉnh ra
- Thêm vào topo
- Xóa các cạnh của nó
- Nếu đỉnh nào indeg = 0 → đưa vào queue
B4: Nếu topo không gồm đủ n đỉnh thì có đồ thị có chu trình, còn không thì topo chính là đán án cần tìm
| # | test.inp | test.out |
|---|---|---|
| 1 |