Top-K của cây con

Xem PDF

Nộp bài


Điểm: 20 (thành phần)
Thời gian: 1.0s
Bộ nhớ: 512M

Tác giả:
Dạng bài

Cho một cây \(N\) đỉnh có gốc là \(1\) (các đỉnh được đánh số từ \(1\) đến \(N\)). Trọng số của đỉnh \(u\) là \(W_u\) \((1\le u\le N)\). Bạn hãy lập trinh xử lý \(Q\) truy vấn, truy vấn thứ \(i\) cho biết cặp số \((V_i, K_i)\) và yêu cầu bạn in ra trọng số lớn thứ \(K_i\) trong cây con gốc \(V_i\). Nói cách khác, in ra giá trị ở vị trí thứ \(K_i\) sau khi sắp xếp trọng số của tất cả các đỉnh trong cây con gốc \(V_i\) theo thứ tự giảm dần.

Input
  • Dòng đầu chứa hai số nguyên dương \(N\) và \(Q\) \(\left(2\le N\le 10^5, 1\le Q\le 10^5\right)\).
  • Dòng tiếp theo chứa \(N\) số nguyên \(W_1\), \(W_2\),..., \(W_N\) \(\left(0\le W_i\le 10^9\right)\).
  • Mỗi dòng trong \(N-1\) dòng tiếp theo chứa hai số nguyên \(u\) và \(v\) thể hiện một cạnh nối từ \(u\) đến \(v\) trên cây đã cho \((1\le u\ne v\le N)\).
  • Dòng thứ \(i\) trong \(Q\) dòng tiếp theo chứa hai số nguyên dương \(V_i\) và \(K_i\) \(\left(1\le V_i\le N, 1\le K_i\le 20\right)\).
Output
  • Gồm \(Q\) dòng là câu trả lời cho \(Q\) truy vấn tương ứng.
Ví dụ
Sample input 01
5 2
1 2 3 4 5
1 4
2 1
2 5
3 2
1 2
2 1
Sample output 01
4
5
Sample input 02
6 2
10 10 10 9 8 8
1 4
2 1
2 5
3 2
6 4
1 4
2 2
Sample output 02
9
10
Sample input 03
4 4
1 10 100 1000
1 2
2 3
3 4
1 4
2 3
3 2
4 1
Sample output 03
1
10
100
1000