trang chủ / đề bài / hn_hsg_22_d

Trạm gác trung tâm

Đề bài

Mô tả

Ban quản lí rừng nguyên sinh đang quản lí một khu vực rộng lớn. Họ đã xây dựng N trạm canh gác rừng (được đánh số từ 1 đến N) và các trạm này được nối với nhau bởi M con đường. Trong N trạm canh gác người ta đã chọn ra K trạm làm trạm gác trung tâm, là nơi điều hành các trạm gác nhỏ hơn và chứa các dụng cụ, phương tiện bảo vệ rừng. Để đi lại và vận chuyển thiết bị dễ dàng giữa các trạm gác trung tâm, Ban quản lí quyết định nâng cấp một số con đường sao cho K trạm gác trung tâm đều đi được đến nhau chỉ bằng các con đường đã nâng cấp (đường đi có thể đi qua các trạm canh gác không phải trạm gác trung tâm).

Yêu cầu: Hãy chọn các con đường để nâng cấp sao cho tổng độ dài các con đường này là nhỏ nhất.

Dữ liệu vào

  • Dòng đầu tiên ghi ba số nguyên dương N,M,K lần lượt là số lượng các trạm gác, số các con đường nối giữa các trạm gác và số lượng các trạm gác trung tâm (1<N≤500; N−1≤M<N2/2; 1<K≤N).
  • Dòng thứ hai ghi K số nguyên đôi một khác nhau là số hiệu của K trạm gác trung tâm.
  • Trong M dòng tiếp theo, mỗi dòng ghi ba số nguyên u,v,c với ý nghĩa con đường hai chiều nối trực tiếp giữa hai trạm u và v có độ dài là c (1≤u,v≤N, u≠v, 1≤c≤109).

Mỗi cặp trạm được nối bởi nhiều nhất một con đường, và từ mỗi trạm có thể đi đến mọi trạm khác theo các con đường.

Dữ liệu ra

Một dòng duy nhất chứa tổng độ dài các con đường được nâng cấp (nhỏ nhất có thể).

Ràng buộc

  • 1<N≤500; N−1≤M<N2/2; 1<K≤N; 1≤c≤109.
  • Mỗi test thỏa mãn K=N hoặc K≤10.
  • Có 40% số test ứng với 40% số điểm của bài thỏa mãn: K=N, N≤500.
  • 30% số test tiếp theo ứng với 30% số điểm của bài thỏa mãn: K≤10, N≤200.
  • 30% số test còn lại ứng với 30% số điểm của bài thỏa mãn: K≤10, N≤500.

Ví dụ

Input Output Giải thích
5 8 3
1 3 5
1 2 2
1 3 10
1 4 12
2 4 5
2 5 7
3 4 2
3 5 10
4 5 6
15 Cần nâng cấp các con đường: 1−2, 2−4, 3−4, 4−5. Tổng độ dài nhỏ nhất là 2+5+2+6=15.
5 7 3
1 2 3
1 2 5
2 3 5
1 3 5
1 4 3
2 4 3
3 4 3
1 5 7
9 Ví dụ do bộ chuyển đổi thêm vào. Nâng cấp ba con đường 1−4, 2−4, 3−4 qua trạm 4 (không phải trạm gác trung tâm), tổng độ dài 9, rẻ hơn hai con đường nối trực tiếp (tổng 10). Trạm 5 không cần được nối.
4 5 4
4 2 1 3
1 2 4
2 3 1
3 4 2
4 1 3
1 3 5
6 Ví dụ do bộ chuyển đổi thêm vào. Mọi trạm đều là trạm gác trung tâm: nâng cấp các con đường 2−3, 3−4, 4−1 với tổng độ dài 1+2+3=6.

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