FSP - Đường đi ngắn nhất trên đồ thị mới
Dữ liệu vào: Standard input
Dữ liệu ra: Standard output
Giới hạn thời gian: 12.0 giây
Giới hạn bộ nhớ: 256 megabyte
Đăng bởi: smurf

Cho đồ thị có trọng số gồm \(N\) đỉnh và \(N - 1\) cạnh. Gọi \(D(i, j)\) là khoảng cách từ đỉnh \(i\) đến đỉnh \(j\) trên cây. (Lưu ý đường đi từ đỉnh \(i\) đến đỉnh \(j\) chỉ thăm mỗi đỉnh duy nhất một lần)

Tạo đồ thị có hướng mới gồm \(N\) đỉnh, với mỗi cặp đỉnh \((i, j)\) nếu \(i < j\) thì thêm cạnh nối từ đỉnh \(i\) đến đỉnh \(j\) có trọng số là \(D(i, j)\).

Nhiệm vụ của bạn là hãy tìm đường đi ngắn nhất từ đỉnh 1 đến tất cả các đỉnh khác trong đồ thị mới tạo. 

Dữ liệu vào

- Dòng đầu gồm số nguyên \(N\) \((2 ≤ N ≤ 8 \times 10^4 )\).

- Dòng thứ \(i + 1\) \((1 ≤ i ≤ N - 1)\) bao gồm 3 số nguyên: \(u_i, v_i, w_i\) \((1 \leq u_i \le v_i \le N, \left| w_i \right| \leq 10^9 )\), với ý nghĩa có cạnh nối giữa \(u_i\) và \(v_i\) với trọng số \(w_i\). Tất cả các cạnh này mô tả cây ban đầu.

Kết quả:

- Gồm \(N\) số nguyên, số nguyên thứ \(i\) tượng trưng cho đường đi ngắn nhất từ \(1\) đến \(i\) trên đồ thị mới. 

Ví dụ

  • input
    6
    1 2 6
    2 3 0
    3 4 -7
    3 5 1
    1 6 -3
    output
    0 6 6 -1 -7 -5
Back to Top