P2912 [USACO08OCT] Pasture Walking G
题目描述
The $N$ cows ($2 \le N \le 1,000$) conveniently numbered $1$…$N$ are grazing among the $N$ pastures also conveniently numbered $1$…$N$. Most conveniently of all, cow $i$ is grazing in pasture $i$.
Some pairs of pastures are connected by one of $N-1$ bidirectional walkways that the cows can traverse. Walkway $i$ connects pastures $A_i$ and $B_i$ ($1 \le A_i \le N; 1 \le B_i \le N$) and has a length of $L_i$ ($1 \le L_i \le 10,000$).
The walkways are set up in such a way that between any two distinct pastures, there is exactly one path of walkways that travels between them. Thus, the walkways form a tree.
The cows are very social and wish to visit each other often. Ever in a hurry, they want you to help them schedule their visits by computing the lengths of the paths between $1 \le L_i \le 10,000$ pairs of pastures (each pair given as a query $p1$,$p2$ ($1 \le p1 \le N; 1 \le p2 \le N$).
POINTS: 200
有$N$($2 \le N \le 1,000$)头奶牛,编号为 $1$ 到 $N$,它们正在同样编号为 $1$ 到 $N$ 的牧场上行走.为了方便,我们假设编号为 $i$ 的牛恰好在第 $i$ 号牧场上。
有一些牧场间每两个牧场用一条双向道路相连,道路总共有 $N - 1$ 条,奶牛可以在这些道路上行走。第i条道路把第 $A_i$ 个牧场和第 $B_i$ 个牧场连了起来($1 \le A_i \le N; 1 \le B_i \le N$),而它的长度是 $1 \le L_i \le 10,000$ 在任意两个牧场间,有且仅有一条由若干道路组成的路径相连。也就是说,所有的道路构成了一棵树。
奶牛们十分希望经常互相见面。它们十分着急,所以希望你帮助它们计划它们的行程,你只 需要计算出 $Q$($1 < Q < 1000$)对点之间的路径长度。每对点以一个询问 $p1$,$p2$ ($1 \le p1 \le N; 1 \le p2 \le N$) 的形式给出。
输入格式
\* Line 1: Two space-separated integers: $N$ and $Q$
\* Lines $2$…$N$: Line $i+1$ contains three space-separated integers: $A_i$, $B_i$, and $L_i$
\* Lines $N+1$…$N+Q$: Each line contains two space-separated integers representing two distinct pastures between which the cows wish to travel: $p1$ and $p2$
输出格式
\* Lines $1$…$Q$: Line $i$ contains the length of the path between the two pastures in query $i$.
说明/提示
Query 1: The walkway between pastures $1$ and $2$ has length $2$.
Query 2: Travel through the walkway between pastures $3$ and $4$, then the one between $4$ and $1$, and finally the one between $1$ and $2$, for a total length of $7$.