Truy vấn cặp đỉnh trên cây

Đề bài

Mô tả

Cho một cây có trọng số gồm n đỉnh (cây là đồ thị liên thông không có chu trình). Cạnh thứ i nối hai đỉnh ui và vi và có trọng số wi.

Bạn nhận được m truy vấn. Truy vấn thứ i cho một số nguyên qi. Với truy vấn này, hãy đếm số cặp đỉnh (u,v) với u<v sao cho trọng số lớn nhất của một cạnh trên đường đi đơn giữa u và v không vượt quá qi.

Các truy vấn độc lập với nhau.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và m — số đỉnh của cây và số truy vấn.
  • n−1 dòng tiếp theo, dòng thứ i chứa ba số nguyên ui, vi, wi mô tả một cạnh nối ui và vi với trọng số wi.
  • Dòng cuối chứa m số nguyên q1,q2,…,qm.

Dữ liệu bảo đảm các cạnh cho trước tạo thành một cây.

Dữ liệu ra

In ra m số nguyên — đáp án cho các truy vấn, theo đúng thứ tự nhập vào. Số thứ i là số cặp đỉnh (u,v) với u<v mà trọng số cạnh lớn nhất trên đường đi giữa chúng không vượt quá qi.

Ràng buộc

  • 1≤n,m≤2·105
  • 1≤ui,vi≤n, ui≠vi
  • 1≤wi≤2·105
  • 1≤qi≤2·105

Ví dụ

Input Output Giải thích
3 3
1 2 1
2 3 2
1 3 2
1 3 3 Cây có 2 cạnh: 1−2 (trọng số 1) và 2−3 (trọng số 2). Với q=1: chỉ cặp (1,2) thỏa mãn. Với q=3 và q=2: cả ba cặp (1,2),(1,3),(2,3) đều có cạnh lớn nhất ≤2.
7 5
1 2 1
3 2 3
2 4 1
4 5 2
5 7 4
3 6 2
5 2 3 4 1
21 7 15 21 3 Với q=5 (và q=4) mọi cạnh đều ≤q nên cả (72)=21 cặp thỏa mãn. Với q=1 chỉ các cặp trong thành phần nối bởi cạnh trọng số 1 được tính, cho 3 cặp.
1 2
1 2
0 0 Cây chỉ có 1 đỉnh, không có cặp nào nên mọi truy vấn đều cho 0.

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