trang chủ / bài tập / rblock14

Chặn đường

Đề bài

Mô tả

N nút và M cạnh vô hướng có trọng số. Bạn cần đi từ nút 1 đến nút N theo đường đi ngắn nhất.

Một kẻ phá hoại có thể chọn đúng một cạnh và nhân đôi trọng số của cạnh đó, nhằm tối đa hóa độ dài đường đi ngắn nhất từ 1 đến N. Hãy tính mức tăng tối đa có thể xảy ra.

Dữ liệu vào

  • Dòng 1: Hai số nguyên NM.
  • M dòng tiếp theo: Mỗi dòng gồm ba số nguyên A, B, L — cạnh nối nút AB với trọng số L.

Dữ liệu ra

Một số nguyên — mức tăng tối đa của đường đi ngắn nhất sau khi kẻ phá hoại chọn cạnh tối ưu.

Ràng buộc

  • 1N250
  • 1M25000
  • 1L106
  • Đồ thị liên thông; không có nhiều cạnh giữa cùng một cặp nút.

Ví dụ

Input Output Giải thích
5 7
2 1 5
1 3 1
3 2 8
3 5 7
3 4 3
2 4 7
4 5 2
2 Đường ngắn nhất ban đầu: 1→3→4→5, độ dài 6. Nhân đôi cạnh 3-4 (3→6): đường ngắn nhất trở thành 1→3→5 = 8. Tăng 2.
10 9
4 10 12
8 4 24
4 6 10
4 2 11
3 6 18
5 10 11
5 7 24
1 7 5
1 9 17
24 Nhân đôi cạnh tối ưu làm tăng đường ngắn nhất thêm 24.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0