在一棵树中,给定两个点 x 和 y,要求计算这两点之间经过的最长简单路径的权值和。树上任意两个节点之间只有一条简单路径,因此我们可以从路径的性质出发,思考如何求解。
通过题意可以得到以下两个关键点:
游游很喜欢树,这一天他在研究树上的路径,他遇到了一个难题,现在邀请你帮助他解决该问题。
在一棵树上,两个点并不一定能确定一条链,但是可以找到一条经过这两个点最长的一条链。
你有一棵n个点的树,树上每条边都有一个权值,定义一条简单路径的长度为这条简单路径上的边权和,对于给定的两个点x,y,你需要回答在树上经过这
两个点的最长简单路径是多少。
树上的路径从节点u到节点v的简单路径定义为从节点u出发,以节点v为终点,随意在树上走,不经过重复的点和边走出来的序列。可以证明,在树上,任意两个节点间有且仅有一条简单路径。
第一行两个数n,m(1≤n,m≤105)。
接下来n−1行,每行3个数ui,vi,di(1≤ui,vi≤n,1≤di≤10),表示树的第i条边。,
接下来m行,每行2个数x,y,表示一次询问。
共m行,每行一个整数ans,表示你的答案。
输入
4 4
1 2 1
1 3 2
1 4 1
2 1
4 3
1 4
2 4
输出
3
3
3
2