NHỮNG CON BÒ

(conbo.*)

\(n\) con bò, để thuận tiện ta đánh số từ 1 đến \(n\), đang ăn trên \(n\) đồng cỏ, để thuận tiện ta cũng đánh số các cánh đồng cỏ từ 1 đến \(n\). Biết rằng con bò thứ \(i\) đang ăn trên đồng cỏ thứ \(i\).

Một vài cặp đồng cỏ được nối với nhau bởi 1 trong \(n\ –\ 1\) con đường 2 chiều mà các con bò có thể đi qua được. Con đường thứ \(i\) nối 2 cánh đồng cỏ \(a_{i}\)\(b_{i}\) và có độ dài \(c_{i}\).

Các con đường được thiết kế sao cho với 2 cánh đồng cỏ bất kỳ đều có duy nhất 1 đường đi giữa chúng.

Các con bò rất có tinh thần giao lưu vì vậy chúng thường xuyên qua lại lẫn nhau.

Yêu cầu: Bạn hãy giúp các con bò tính toán độ dài đường đi qua giữa \(q\) cặp đồng cỏ, mỗi cặp đồng cỏ mô tả 2 số nguyên \(u,\ v\ (1\ \leq \ u\ ,\ v \leq n)\).

Dữ liệu vào:

  • Dòng đầu tiên ghi 2 số nguyên \(n\)\(q\) cách nhau bởi dấu cách \((1 \leq n \leq \ 10^{5};\ 1 \leq q \leq 50000)\);

  • \(n - 1\) dòng tiếp theo: Mỗi dòng chứa 3 số nguyên cách nhau bởi dấu cách \(a_{i},\ b_{i};\ c_{i}\) mô tả đường đi trực tiếp giữa \(a_{i},\ b_{i}\) và độ dài của nó là \(c_{i}\ (1 \leq a_{i},\ b_{i} \leq n;\ 1 \leq c_{i}\ \leq {10}^{5})\);

  • \(q\) dòng tiếp theo: Mỗi dòng chứa 2 số nguyên \(u\)\(v\) khác nhau yêu cầu tính toán độ dài đường đi giữa 2 đồng cỏ mà các con bò muốn đi thăm qua lại.

Kết quả: Ghi \(q\) dòng, mỗi dòng là kết quả của từng yêu cầu theo thứ tự (mỗi số được viết trên một dòng).

Ví dụ:

Input Output Giải thích
4 2
2 1 2
4 3 5
1 4 3
1 2
3 2
2
10
Đường đi từ 1 đến 2 có độ dài là 2.
Đường đi từ 3 đến 2 có độ dài là 10.

Ràng buộc: Có 50% số test có \(n\ \leq \ 5000\).

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

hpcode.edu.vn
Code tích cực
Trong 24h
  1. sythai (5/8)
  2. npk1605 (5/10)
  3. trungnam (4/4)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

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