trang chủ / đề bài / icpc25_mt_l

Phố đèn đỏ

Đề bài

Mô tả

Ngày nào Minh cũng đạp xe tới trường. Nhờ luyện tập thường xuyên, cậu luôn giữ được vận tốc không đổi v. Tìm đường đi ngắn nhất từ nhà tới trường là việc dễ dàng với cậu. Tuy nhiên, cậu nhận thấy mỗi khi đi qua một giao lộ, luôn gặp đèn đỏ:

  • ở giao lộ 3 ngả, cậu phải chờ 1 giây,
  • ở giao lộ 4 ngả, chờ 2 giây,
  • ở giao lộ 5 ngả, chờ 3 giây, và cứ thế, mỗi con đường thêm ở giao lộ làm thời gian chờ tăng thêm 1 giây.

Nói cách khác, khi đi qua một địa điểm có k con đường nối tới, Minh phải chờ max(0,k−2) giây.

Thành phố có N địa điểm và M con đường hai chiều nối giữa chúng. Hãy tính tổng thời gian ngắn nhất để đi từ địa điểm s tới địa điểm t, giả sử Minh gặp đèn đỏ ở mọi giao lộ cậu đi qua. Điểm xuất phát và điểm đích không tính thời gian chờ đèn.

Dữ liệu vào

  • Dòng đầu tiên chứa ba số nguyên N, M, v: số địa điểm, số con đường và vận tốc đạp xe của Minh (mét/giây).
  • M dòng tiếp theo, mỗi dòng chứa ba số nguyên ai, bi, di: một con đường nối hai địa điểm ai và bi với độ dài di mét.
  • Dòng cuối cùng chứa hai số nguyên s và t (s≠t): địa điểm xuất phát và địa điểm đích.

Dữ liệu đảm bảo đồ thị liên thông.

Dữ liệu ra

In ra thời gian di chuyển ngắn nhất từ s tới t (đơn vị giây), làm tròn tới 6 chữ số thập phân. Đáp án sai lệch không quá 10−6 (tuyệt đối hoặc tương đối) so với đáp án của ban giám khảo được chấp nhận.

Ràng buộc

  • 2≤N≤2×105
  • 1≤M≤min(4×105,N(N+1)2)
  • 1≤v≤103
  • 1≤ai,bi≤N, ai≠bi, 1≤di≤106
  • Không có hai con đường nối cùng một cặp địa điểm.

Ví dụ

Input Output Giải thích
5 6 1
1 2 5
2 3 5
1 4 10
4 3 2
3 5 3
4 5 8
1 5
14.000000 Đường 1→2→3→5 dài 13 mét; địa điểm 2 có 2 con đường (không chờ), địa điểm 3 có 3 con đường (chờ 1 giây): 13+1=14. Đường 1→4→5 mất 18+1=19 giây.
3 3 7
1 2 8
2 3 9
1 3 20
1 3
2.428571 Đi thẳng 1→3 mất 20/7≈2.857 giây; đi 1→2→3 mất 17/7≈2.428571 giây (địa điểm 2 chỉ có 2 con đường).

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