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

Chặn Đường (Gold)

Đề bài

Mô tả

N địa điểm được nối với nhau bởi M con đường hai chiều. Mỗi con đường nối hai địa điểm AB với độ dài L. Một người đi từ địa điểm 1 đến địa điểm N theo đường đi ngắn nhất.

Một nhóm muốn cản trở việc di chuyển này bằng cách chặn một con đường — làm đôi độ dài của nó (nhân đôi). Nhóm sẽ chọn con đường để tối đa hóa mức tăng của đường đi ngắn nhất từ 1 đến N.

Hãy tính mức tăng lớn nhất có thể đạt được.

Dữ liệu vào

  • Dòng 1: Hai số nguyên NM (1N250, 1M25000).
  • M dòng tiếp theo: Mỗi dòng gồm ba số nguyên A, B, L — con đường nối địa điểm AB có độ dài L (1L106).

Đồ thị liên thông, không có cạnh trùng lặp.

Dữ liệu ra

Một số nguyên duy nhất: mức tăng lớn nhất của đường đi ngắn nhất sau khi nhân đôi một con đường.

Ràng buộc

  • 1N250
  • 1M25000
  • 1L106

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 đi ngắn nhất ban đầu là 1345 với độ dài 6. Nếu nhân đôi cạnh 3-4 (từ 3 thành 6), đường ngắn nhất mới là 135 với độ dài 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 Chặn cạnh duy nhất trên đường ngắn nhất làm tăng đáng kể khoảng cách.

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