大家好,又见面了,我是你们的朋友全栈君。
倍增法可以有很多变化 。
1.用 data[ i ][ j ]记录从i 到他的第2j 个父亲的路径长度,就可以边求LCA边求出两点距离,因为data[i][j]满足倍增的递推式:
data[ i ][ j ]=data[ i ][ j-1 ]+data[ fa[i][j-1] ][ j-1 ]。
2. 用maxlen[ i ][ j ]记录i到第2^j^ 个父亲的路径上最长边的边权,它满足
maxlen[ i ][ j ]=max{
maxlen[ i ][ j-1 ],maxlen[ fa[ i ][ j-1] ][ j-1 ] }
可以快速求两点路径上最长边的边权
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/127055.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...