CẠNH NHỎ NHẤT

Cho một đồ thị vô hướng liên thông ~n~ đỉnh và ~n-1~ cạnh, các đỉnh đánh số từ 1 đến ~n~. Mỗi cạnh của đồ thị được gán một giá trị nguyên dương được gọi là trọng số của cạnh.

Một đường đi đơn từ đỉnh ~u~ đến đỉnh ~v~ là dãy ~u=x_1 x_2…x_k=v~ trong đó ~(x_i,x_{i+1} )~ ~i=1÷(k-1)~ là các cạnh của đồ thị và ngoài ra ~x_i≠x_j∀ i≠j~. Giá trị của đường đi trên là:

~min⁡{L(x_i,x_{i+1} ) ∶i=1,2,…,k-1} ~

Ở đây ~L(x_i,x_{i+1})~ là trọng số của cạnh ~(x_i,x_{i+1})~

Yêu cầu: Trả lời ~Q~ câu hỏi, mỗi câu hỏi được mô tả bởi hai số nguyên ~k,v~ với ý nghĩa: Đếm xem có bao nhiêu đỉnh ~u~ của đồ thị mà có trọng số của đường đi đơn từ ~u~ đến ~v~ lớn hơn hoặc bằng ~k~?

Dữ liệu vào:

  • Dòng thứ nhất chứa hai số nguyên ~n,Q~ ~(1≤n,Q≤10^5)~
  • ~n-1~ dòng tiếp theo mô tả các cạnh của đồ thị, dòng thứ ~i~ chứa ba số nguyên ~p_i,q_i~ và ~r_i~ ~(1≤p_i,q_i≤n,1≤r_i≤10^9)~ thể hiện rằng có cạnh nối hai đỉnh ~p_i,q_i~ có trọng số ~r_i~
  • ~Q~ dòng tiếp theo, mỗi dòng ghi một truy vấn gồm hai số nguyên ~k,v~ ~(1≤k≤10^9,1≤v≤n)~ thể hiện yêu cầu đếm xem có bao nhiêu đỉnh mà trọng số đường đi đơn từ nó đến v lớn hơn hoặc bằng ~k~?.

Kết quả:

  • Gồm ~Q~ dòng, mỗi dòng ghi một số nguyên là kết quả của truy vấn tương ứng (theo thứ tự xuất hiện trong file dữ liệu vào)

Ví dụ:

Input:

4 3
1 2 3
2 3 2
2 4 4
1 2
4 1
3 1 
Output:

3
0
2 

Subtasks:

  • Subtask 1: Có 50% số test có ~n≤1000~
  • Subtask 2: Có 50% số test còn lại có ~n≤10^5~

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. giaan10anh2 (21/25)
  2. nguyenvuquang (8/14)
  3. sv_tranquocan (7/13)
Trong 7 ngày
  1. sv_tranquocan (64/139)
  2. quocchinh96bl (44/98)
  3. hanngocdat (43/84)
Trong 30 ngày
  1. huy_notcoding (192/304)
  2. ducchinh (184/249)
  3. hienpham (183/244)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 37913

Lưu Hải Phong - 2020
[email protected]