trang chủ / đề bài / dhbb23_ltt_11_c

Đường đi ngắn nhất trên đồ thị mới

Đề bài

Mô tả

Cho đồ thị vô hướng có trọng số dạng cây gồm N đỉnh (đánh số từ 1 đến N) 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, tức tổng trọng số các cạnh trên đường đi từ i đến j (lưu ý đường đi từ đỉnh i đến đỉnh j chỉ thăm mỗi đỉnh duy nhất một lần). Trọng số các cạnh có thể âm.

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).

Yêu cầu: Hãy tìm đường đi ngắn nhất từ đỉnh 1 đến tất cả các đỉnh trong đồ thị mới tạo.

Dữ liệu vào

  • Dòng đầu gồm số nguyên N.
  • Dòng thứ i+1 (1≤i≤N−1) gồm 3 số nguyên ui,vi,wi, với ý nghĩa có cạnh nối giữa ui và vi với trọng số wi. Tất cả các cạnh này mô tả cây ban đầu.

Dữ liệu ra

In ra trên một dòng N số nguyên cách nhau bởi dấu cách, số nguyên thứ i là độ dài đường đi ngắn nhất từ đỉnh 1 đến đỉnh i trên đồ thị mới (số thứ nhất luôn bằng 0).

Ràng buộc

  • 2≤N≤8·104.
  • 1≤ui<vi≤N, |wi|≤109.
  • Các cạnh đã cho tạo thành một cây.

Ví dụ

Input Output Giải thích
5
1 2 -2
1 3 1
2 4 5
2 5 -6
0 -2 -3 1 -10 1→2 với chi phí D(1,2)=−2. 1→2→3 với chi phí D(1,2)+D(2,3)=−3. 1→2→3→4 với chi phí D(1,2)+D(2,3)+D(3,4)=1. 1→2→3→5 với chi phí D(1,2)+D(2,3)+D(3,5)=−10.
4
1 2 3
2 3 -5
3 4 4
0 3 -2 2 (Ví dụ bổ sung.) Cây là đường thẳng 1−2−3−4. Đến đỉnh 3: D(1,3)=3+(−5)=−2, đi qua đỉnh 2 cũng cho 3+(−5)=−2. Đến đỉnh 4: mọi cách đều cho 2, ví dụ D(1,4)=2.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0