trang chủ / đề bài / gr08_negedge

Cạnh trọng số âm

Đề bài

Mô tả

Cho đồ thị có hướng gồm n đỉnh đánh số từ 1 đến n và m cung. Cung thứ i đi từ đỉnh ui tới đỉnh vi với trọng số wi; trọng số có thể âm. Có thể có cung từ một đỉnh tới chính nó và nhiều cung giữa cùng một cặp đỉnh.

Đồ thị được đảm bảo không có chu trình âm: mọi chu trình (đi theo chiều các cung) đều có tổng trọng số không âm.

Với mỗi đỉnh v, hãy tính độ dài đường đi ngắn nhất từ đỉnh 1 tới v (tổng trọng số các cung trên đường đi).

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên n, m.
  • m dòng tiếp theo, dòng thứ i chứa ba số nguyên ui,vi,wi.

Dữ liệu ra

In ra trên một dòng n giá trị cách nhau bởi dấu cách: giá trị thứ v là độ dài đường đi ngắn nhất từ 1 tới v, hoặc INF nếu không có đường đi từ 1 tới v.

Ràng buộc

  • 1≤n≤1000
  • 0≤m≤3000
  • 1≤ui,vi≤n
  • −109≤wi≤109
  • Đồ thị không có chu trình âm.

Ví dụ

Input Output Giải thích
5 6
1 2 1
1 3 5
3 2 -5
2 4 2
4 5 -1
3 5 4
0 0 5 2 1 Đường đi ngắn nhất tới đỉnh 2 là 1→3→2 với độ dài 5−5=0, ngắn hơn cung trực tiếp 1→2 dù đỉnh 3 ở xa hơn. Từ đó 1→3→2→4→5 có độ dài 1.
4 3
1 2 5
3 4 -7
4 2 1
0 5 INF INF Không có cung nào đi vào đỉnh 3, nên không tới được đỉnh 3 và đỉnh 4; cung âm 3→4 không làm thay đổi gì.

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