学习了神牛键盘艺术家写的博客:https://blog.csdn.net/lw277232240/article/details/72870644后,看到
大神说有很多类似的数组
想到的确,树这玩意也可以不是树,就是拼接起来的链,数组
因为有树链剖分这样的东西,树上路径的复杂度可以降到nlog2n,
有了倍增法,对于树的向上求解貌似也可以降低到O(logn),他提到的思想,就是在树的向上的链里面倍增(二分)
不要仅仅局限在LCA上,也可以是其他的权,只要从根部向下延申是非严格单调的,
例如:在LCA问题上,如果i结点为a和b的公共祖先,那么father[i]肯定也是。
如果a和b的前第i代祖先相同,那么他们的前第i+1代祖先也肯定相同,这就是从根部向下延申是非严格单调的。
这种倍增其实不也是一种二分么
(由于非线性结构,所以二分的表现形式不同,使用了二维数组和二进制的思想(类似背包的二进制))
所以学了树链剖分之后,觉得好像树挺简单的,毕竟可以转化为区间问题了。