【题意】:
小仓鼠的和他的基( m e i mei mei)友( z i zi zi) s u g a r sugar sugar住在地下洞穴中,每个节点的编号为 1 n 1~n 1 n。地下洞穴是一个树形结构。这一天小仓鼠打算从从他的卧室( a a a)到餐厅( b b b),而他的基友同时要从他的卧室( c c c)到图书馆( d d d)。他们都会走最短路径。现在小仓鼠希望知道,有没有可能在某个地方,可以碰到他的基友?
小仓鼠那么弱,还要天天被 z z q zzq zzq大爷虐,请你快来救救他吧!
【思路】:
题意即让我们判断一颗树上的两条路径 ( a , b ) (a,b) (a,b)和 ( c , d ) (c,d) (c,d)有没有交点,这有两中方法:
方法 1 : 1: 1:当两条路径长度和 ≥ \geq ≥两条路径起点之距离 + + +两条路径终点之距离,则两条路径有交点(求 ( x , y ) (x,y) (x,y)距离公式: d e p [ x ] + d e p [ y ] − 2 × d e p [ l c a ( x , y ) ] dep[x]+dep[y]-2 \times dep[lca(x,y)] dep[x]+dep[y]−2×dep[lca(x,y)])
方法 2 : 2: 2:当两条路径有交点时,其中一条路径的 l c a lca l<