PWALK - Dạo chơi đồng cỏ

Giới hạn
  • Thời gian: 0.2s
  • Bộ nhớ: 1536MB
  • Mã nguồn: 50000 bytes

Ghi chú: Các bài VNOI đã được chuyển qua VNOJ (Thông báo). Đề bài trên VNOI và vn.spoj.com sẽ không được cập nhật nữa. Một số đề bài không chính xác sẽ chỉ được cập nhật trên VNOJ. Bạn vẫn có thể tìm kiếm đề bài trên VNOI.

Link đọc đề trên VNOJ

Có N con bò (1 <= N <= 1,000), để thuận tiện ta đánh số từ 1->N, đang ăn cỏ trên N đồng cỏ, để thuận tiện ta cũng đánh số các đồng cỏ từ 1->N. Biết rằng con bò i đang ăn cỏ trên đồng cỏ 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. Con đường i nối 2 đồng cỏ A_i và B_i (1 <= A_i <= N; 1 <= B_i <= N) và có độ dài là L_i (1 <= L_i <= 10,000).

Các con đường được thiết kế sao cho với 2 đồng cỏ bất kỳ đều có duy nhất 1 đường đi giữa chúng. Như vậy các con đường này đã hình thành 1 cấu trúc cây.

Các chú bò rất có tinh thần tập thể và muốn được thăm thường xuyên. Vì vậy lũ bò muốn bạn giúp chúng tính toán độ dài đường đi giữa Q (1 <= Q <= 1,000) cặp đồng cỏ (mỗi cặp được mô tả là 2 số nguyên p1,p2 (1 <= p1 <= N; 1 <= p2 <= N).

DỮ LIỆU

  • Dòng 1: 2 số nguyên cách nhau bởi dấu cách: N và Q
  • Dòng 2..N: Dòng i+1 chứa 3 số nguyên cách nhau bởi dấu cách: A_i, B_i, và L_i
  • Dòng N+1..N+Q: Mỗi dòng chứa 2 số nguyên khác nhau cách nhau bởi dấu cách mô tả 1 yêu cầu tính toán độ dài 2 đồng cỏ mà lũ bò muốn đi thăm qua lại p1 và p2.

KẾT QUẢ

  • Dòng 1..Q: Dòng i chứa độ dài đường đi giữa 2 đồng cỏ ở yêu cầu thứ i.

VÍ DỤ

Dữ liệu
4 2
2 1 2
4 3 2
1 4 3
1 2
3 2

Kết quả
2
7

GIẢI THÍCH

Yêu cầu 1: Con đường giữa đồng cỏ 1 và 2 có độ dài là 2. Yêu cầu 2: Đi qua con đường nối đồng cỏ 3 và 4, rồi tiếp tục đi qua con đường nối 4 và 1, và cuối cùng là con đướng nối 1 và 2, độ dài tổng cộng là 7.


  • Người up: paulmcvn
  • Nguồn bài: USACO October 2008 - Qualifying Round