简化版题目:
有一棵 N N N个节点的树,和 Q Q Q组询问
有三个人分别在点 x , y , z x,y,z x,y,z现在希望你找到一个点,使得
三个人到这个点的距离和最小。
题目分析
首先,本题最大的难度就是求的是三条路径的最小值,而不是两个,如果是两个的话我们直接求书的路径上的点就行,即为求两点之间的 L C A LCA LCA,但是如果问题为 3 3 3的点就不同了,我们类比之前,可能会想到求出 3 3 3个点的 L C A LCA LCA,可是这样,明显是不对的,比如下边这幅图就是一个反例。
·A
/ \
/ \
/ \
.C .B
/ \
/ \
.D .E
若在此图中寻找一个点,使其到 B , E , F B,E,F B,E,F之和最小,显然不是求三者 L C A − A LCA-A LCA−A点,而是应当选 C C C点,这样他们的值才能最小。
为什么这么说呢?可以把 B B B翻转过来,然后就可以发现应该在他们的交点 C C C上可以取到最小值。
这道题还有一个情况如下
.A
/
/
C.
/ \
/ \
.B \
D.
现在我们要求 B , C , D B,C,D B,C,D的最短距离,我们怎么走。
这其实是最简单的一种模型。肯定是走在