trang chủ / đề bài / thhv22_visit

Tham quan Điện Biên Phủ

Đề bài

Mô tả

Năm nay trại hè Hùng Vương được tổ chức tại thành phố Điện Biên Phủ. Thành phố này có n địa điểm (đánh số từ 1 đến n) và được nối với nhau bằng m con đường hai chiều để có thể đi từ bất kỳ địa điểm nào đến bất kỳ địa điểm nào khác.

Trong số n địa điểm này, có k địa điểm hấp dẫn người du lịch. An là một thí sinh tham dự trại hè và lần đầu tiên được đến thành phố Điện Biên Phủ, nên An muốn thăm tất cả k địa điểm hấp dẫn trên.

Ban đầu An đang ở địa điểm 1. Khi đi từ địa điểm này đến địa điểm khác sẽ mất một số thời gian di chuyển. Nhưng thật kỳ lạ, An có thể di chuyển tức thời từ địa điểm hấp dẫn đang tham quan hiện tại đến một địa điểm hấp dẫn đã tham quan mà không mất thời gian di chuyển nào. Việc di chuyển tức thời không mất thời gian di chuyển này cho phép An di chuyển nhanh chóng giữa các địa điểm của thành phố.

Yêu cầu: Bạn hãy giúp An tính tổng thời gian di chuyển tối thiểu để tham quan tất cả k địa điểm hấp dẫn. Chú ý rằng ta chỉ quan tâm đến thời gian di chuyển, chứ không quan tâm đến thời gian tham quan tại địa điểm đó và không nhất thiết phải quay trở về địa điểm 1 khi kết thúc hành trình.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên n và m (1≤n≤105; 0≤m≤105) cho biết có bao nhiêu địa điểm và con đường trong thành phố.
  • Dòng thứ i trong m dòng tiếp theo chứa ba số nguyên ui,vi,wi (1≤ui,vi≤n; ui≠vi; 1≤wi≤109) mô tả một con đường hai chiều nối hai địa điểm ui,vi và thời gian cần thiết để đi từ địa điểm này đến địa điểm kia bằng con đường này là wi. Hai địa điểm bất kỳ được nối với nhau không quá một con đường. Dữ liệu đảm bảo rằng có thể đi từ bất kỳ địa điểm nào đến bất kỳ địa điểm nào khác.
  • Dòng tiếp theo chứa số nguyên k (1≤k≤n) là số địa điểm hấp dẫn.
  • Dòng tiếp theo chứa k số nguyên phân biệt p1,p2,…,pk (1≤pi≤n) là các địa điểm hấp dẫn.

Dữ liệu ra

In ra một số nguyên duy nhất là thời gian di chuyển tối thiểu để An tham quan tất cả các địa điểm hấp dẫn. Chú ý rằng thứ tự tham quan các địa điểm hấp dẫn là tùy ý.

Ràng buộc

  • 1≤n≤105; 0≤m≤105.
  • 1≤ui,vi≤n; ui≠vi; 1≤wi≤109; hai địa điểm bất kỳ được nối với nhau không quá một con đường; đồ thị liên thông.
  • 1≤k≤n; các pi phân biệt, 1≤pi≤n.

Subtasks

Điểm được tính theo từng test.

  • Subtask 1 (10% số test): k=1.
  • Subtask 2 (10% số test): k=n.
  • Subtask 3 (20% số test): 1≤n≤10; 0≤m≤10; 1≤wi≤102; 1<k<n.
  • Subtask 4 (20% số test): 1≤n≤102; 0≤m≤102; 1≤wi≤105; 1<k<n.
  • Subtask 5 (20% số test): 1≤n≤103; 0≤m≤103; 1<k<n.
  • Subtask 6 (20% số test): không có ràng buộc gì thêm.

Ví dụ

Input Output Giải thích
5 6
1 2 2
2 3 1
2 4 3
3 4 5
3 5 2
4 5 4
3
4 5 2
8 Các địa điểm hấp dẫn là 2,4,5. Một hành trình tối ưu: đi từ 1 đến 2 (địa điểm hấp dẫn) mất 2; tiếp theo đến 3 mất 1; tiếp theo đến 5 (địa điểm hấp dẫn) mất 2; do 5 là địa điểm hấp dẫn nên di chuyển tức thời trở lại địa điểm hấp dẫn 2 mất 0; sau đó đến 4 (địa điểm hấp dẫn) mất 3 rồi kết thúc. Tổng thời gian là 2+1+2+0+3=8.
4 3
1 2 1
2 3 1
3 4 1
2
1 3
2 An đang ở địa điểm hấp dẫn 1, chỉ cần đi 1→2→3 mất 1+1=2.

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