trang chủ / đề bài / csp_tst_23_b

Hành trình du lịch

Đề bài

Mô tả

Sau chuỗi ngày ôn và thi mệt mỏi, Bờm quyết định du lịch đến đất nước Byteland. Đất nước xinh đẹp này có n thành phố, các thành phố kết nối với nhau bởi n−1 con đường hai chiều (từ một thành phố bất kỳ có thể đi đến mọi thành phố khác). Con đường thứ i nối từ thành phố x đến thành phố y có độ dài w. Thêm nữa, qua quá trình khảo sát Bờm có lên thang điểm về độ đẹp cho mỗi thành phố. Độ đẹp của thành phố thứ i được đánh giá là ai.

Việc đi lại giữa các thành phố được thực hiện bằng xe buýt. Cách vận hành xe buýt ở đây cũng rất đặc biệt: giả sử xe buýt đang ở thành phố u, nó sẽ xác định tuyến đi tiếp theo bằng cách chọn một thành phố v (khác u) có av−d(u,v) là lớn nhất. Trong đó d(u,v) được định nghĩa là khoảng cách đi từ u đến v (tổng độ dài các con đường trên đường đi giữa u và v). Nếu có nhiều thành phố thỏa mãn thì xe buýt sẽ di chuyển đến thành phố có chỉ số nhỏ nhất. Khi đã chọn được điểm đến là thành phố v thì xe buýt sẽ đi thẳng từ u đến v mà không dừng ở các thành phố trung gian; việc đi từ u đến v được tính là một tuyến đường.

Yêu cầu: Cho Q truy vấn, mỗi truy vấn có hai tham số s,k ứng với việc Bờm xuất phát từ thành phố s và di chuyển qua k tuyến đường bằng xe buýt theo cách mô tả ở trên. Hãy cho biết, với mỗi truy vấn thì Bờm sẽ kết thúc chuyến đi ở thành phố nào?

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên dương n,Q (2≤n≤2×105,1≤Q≤2×105) là số thành phố và số truy vấn.
  • Dòng hai chứa n số nguyên a1,a2,…,an là vẻ đẹp của n thành phố (|ai|≤109).
  • n−1 dòng tiếp theo dạng x y w mô tả n−1 con đường (1≤x,y≤n,0<w≤109).
  • Q dòng tiếp là truy vấn dạng s k: điểm xuất phát và số tuyến đường sẽ đi (1≤s≤n,1≤k≤109).

Dữ liệu ra

Gồm Q dòng, mỗi dòng in ra chỉ số thành phố Bờm sẽ kết thúc ở mỗi truy vấn.

Ràng buộc

  • 2≤n≤2×105, 1≤Q≤2×105.
  • |ai|≤109.
  • 1≤x,y≤n, 0<w≤109; các con đường tạo thành một cây.
  • 1≤s≤n, 1≤k≤109.

Subtasks

  • Subtask 1 (20% số test, ứng với 20% số điểm): n,Q≤200, k≤200.
  • Subtask 2 (25% số test khác, ứng với 25% số điểm): n,Q≤2000.
  • Subtask 3 (25% số test khác, ứng với 25% số điểm): k=1.
  • Subtask 4 (30% số test còn lại, ứng với 30% số điểm): không có ràng buộc gì thêm.

Bài được chấm theo từng test, mỗi test có cùng số điểm.

Ví dụ

Input Output Giải thích
5 4
1 2 3 4 5
1 4 3
3 2 5
4 3 2
1 5 2
1 1
2 3
3 2
5 1
5
3
3
1
Hành trình của 4 tour của Bờm: 1→5; 2→3→4→5; 3→4→5; 5→1. Chẳng hạn từ thành phố 1: a5−d(1,5)=5−2=3 là lớn nhất.
3 3
0 5 5
1 2 1
1 3 1
1 1
1 1000000000
2 2
2
3
2
Từ thành phố 1, hai thành phố 2 và 3 cùng có av−d(1,v)=4 nên xe buýt đi đến thành phố có chỉ số nhỏ hơn là 2. Từ 2 xe buýt đi đến 3 (giá trị 5−2=3), từ 3 đi về 2. Hành trình thứ hai là 1→2→3→2→… với 109 tuyến đường, kết thúc ở thành phố 3.

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